libMesh
Static Public Member Functions | Private Member Functions | List of all members
libMesh::InfFE< Dim, T_radial, T_map >::Radial Class Reference

Infinite elements are in some sense directional, compared to conventional finite elements. More...

#include <inf_fe.h>

Static Public Member Functions

static Real decay (const Real v)
 
static Real decay_deriv (const Real)
 
static Real D (const Real v)
 
static Real D_deriv (const Real v)
 
static Order mapping_order ()
 
static unsigned int n_dofs (const Order o_radial)
 
static unsigned int n_dofs_at_node (const Order o_radial, const unsigned int n_onion)
 
static unsigned int n_dofs_per_elem (const Order o_radial)
 

Private Member Functions

 Radial ()
 Never use an object of this type. More...
 

Detailed Description

template<unsigned int Dim, FEFamily T_radial, InfMapType T_map>
class libMesh::InfFE< Dim, T_radial, T_map >::Radial

Infinite elements are in some sense directional, compared to conventional finite elements.

All methods related to the radial part, which extends perpendicular from the base, are collected in this nested class. This class offers static methods, which are only available to InfFE members.

Author
Daniel Dreyer
Date
2003

Definition at line 93 of file inf_fe.h.

Constructor & Destructor Documentation

template<unsigned int Dim, FEFamily T_radial, InfMapType T_map>
libMesh::InfFE< Dim, T_radial, T_map >::Radial::Radial ( )
private

Never use an object of this type.

Definition at line 100 of file inf_fe.h.

References libMesh::InfFE< Dim, T_radial, T_map >::Radial::decay(), and libMesh::Real.

100 {}

Member Function Documentation

template<unsigned int Dim, FEFamily T_radial, InfMapType T_map>
static Real libMesh::InfFE< Dim, T_radial, T_map >::Radial::D ( const Real  v)
static
Returns
The radial weight D, used as an additional weight for the test function, evaluated at local radial coordinate v.

Definition at line 120 of file inf_fe.h.

Referenced by libMesh::InfFE< Dim, T_radial, T_map >::init_shape_functions().

120 { return (1.-v)*(1.-v)/4.; }
template<unsigned int Dim, FEFamily T_radial, InfMapType T_map>
static Real libMesh::InfFE< Dim, T_radial, T_map >::Radial::D_deriv ( const Real  v)
static
Returns
The first (local) radial derivative of the radial weight D.

Definition at line 125 of file inf_fe.h.

Referenced by libMesh::InfFE< Dim, T_radial, T_map >::init_shape_functions().

125 { return (v-1.)/2.; }
template<unsigned int Dim, FEFamily T_radial, InfMapType T_map>
Real libMesh::InfFE< Dim, T_radial, T_map >::Radial::decay ( const Real  v)
static
Returns
The decay in the radial direction of the Dim dimensional infinite element.

Definition at line 826 of file inf_fe.h.

Referenced by libMesh::InfFE< Dim, T_radial, T_map >::compute_data(), libMesh::InfFE< Dim, T_radial, T_map >::init_radial_shape_functions(), libMesh::InfFE< Dim, T_radial, T_map >::Radial::Radial(), and libMesh::InfFE< Dim, T_radial, T_map >::shape().

827 {
828  switch (Dim)
829  //TODO:[DD] What decay do i have in 2D and 1D?
830  {
831  case 3:
832  return (1.-v)/2.;
833 
834  case 2:
835  return 0.;
836 
837  case 1:
838  return 0.;
839 
840  default:
841  libmesh_error_msg("Invalid Dim = " << Dim);
842  }
843 }
template<unsigned int Dim, FEFamily T_radial, InfMapType T_map>
static Real libMesh::InfFE< Dim, T_radial, T_map >::Radial::decay_deriv ( const Real  )
static
Returns
The first (local) derivative of the decay in radial direction of the infinite element.

Definition at line 114 of file inf_fe.h.

Referenced by libMesh::InfFE< Dim, T_radial, T_map >::init_radial_shape_functions().

114 { return -.5; }
template<unsigned int Dim, FEFamily T_radial, InfMapType T_map>
static Order libMesh::InfFE< Dim, T_radial, T_map >::Radial::mapping_order ( )
static
Returns
The Order of the mapping functions in the radial direction. Currently, this is always FIRST.

Definition at line 131 of file inf_fe.h.

References libMesh::FIRST.

Referenced by libMesh::InfFE< Dim, T_radial, T_map >::init_radial_shape_functions().

131 { return FIRST; }
template<unsigned int Dim, FEFamily T_radial, InfMapType T_map>
static unsigned int libMesh::InfFE< Dim, T_radial, T_map >::Radial::n_dofs ( const Order  o_radial)
static
Returns
The number of shape functions in radial direction associated with this infinite element. Either way, if the modes are stored as nodal dofs (n_dofs_at_node) or as element dofs (n_dofs_per_elem), in each case we have the same number of modes in radial direction.
Note
For the case of 1D infinite elements, in the base the dof-per-node scheme is used.

From the formulation of the infinite elements, we have 1 mode, when o_radial=CONST. Therefore, we have a total of o_radial+1 modes in radial direction.

Definition at line 147 of file inf_fe.h.

References libMesh::InfFE< Dim, T_radial, T_map >::Radial::n_dofs_at_node().

Referenced by libMesh::InfFE< Dim, T_radial, T_map >::combine_base_radial(), libMesh::InfFE< Dim, T_radial, T_map >::init_radial_shape_functions(), and libMesh::InfFE< Dim, T_radial, T_map >::n_shape_functions().

148  { return static_cast<unsigned int>(o_radial)+1; }
template<unsigned int Dim, FEFamily T_radial, InfMapType T_map>
unsigned int libMesh::InfFE< Dim, T_radial, T_map >::Radial::n_dofs_at_node ( const Order  o_radial,
const unsigned int  n_onion 
)
static
Returns
The number of dofs in radial direction on "onion slice" n (either 0 or 1) for an infinite element of type inf_elem_type and radial order o_radial.

Currently, the first radial mode is associated with the nodes in the base. All higher radial modes are associated with the physically existing nodes further out.

Definition at line 127 of file inf_fe_base_radial.C.

References libMesh::InfFE< Dim, T_radial, T_map >::Base::build_elem(), libMesh::CARTESIAN, libMesh::InfFE< Dim, T_radial, T_map >::Base::get_elem_type(), libMesh::INSTANTIATE_INF_FE_MBRF(), and libMesh::InfFE< Dim, T_radial, T_map >::Base::n_base_mapping_sf().

Referenced by libMesh::InfFE< Dim, T_radial, T_map >::Radial::n_dofs(), and libMesh::InfFE< Dim, T_radial, T_map >::n_shape_functions().

129 {
130  libmesh_assert_less (n_onion, 2);
131 
132  if (n_onion == 0)
133  /*
134  * in the base, no matter what, we have 1 node associated
135  * with radial direction
136  */
137  return 1;
138  else
139  /*
140  * this works, since for Order o_radial=CONST=0, we still
141  * have the (1-v)/2 mode, associated to the base
142  */
143  return static_cast<unsigned int>(o_radial);
144 }
template<unsigned int Dim, FEFamily T_radial, InfMapType T_map>
static unsigned int libMesh::InfFE< Dim, T_radial, T_map >::Radial::n_dofs_per_elem ( const Order  o_radial)
static
Returns
The number of modes in radial direction interior to the element, not associated with any interior nodes.
Note
These modes are a discontinuous approximation, therefore we have no special formulation for coupling in the base, like in the case of associating (possibly) multiple dofs per (outer) node.

Definition at line 170 of file inf_fe.h.

Referenced by libMesh::InfFE< Dim, T_radial, T_map >::n_shape_functions().

171  { return static_cast<unsigned int>(o_radial)+1; }

The documentation for this class was generated from the following files: