Base class for all the infinite geometric element types. More...
#include <fe.h>
Classes | |
class | Base |
class | Radial |
Public Types | |
typedef OutputType | OutputShape |
typedef TensorTools::IncrementRank< OutputShape >::type | OutputGradient |
typedef TensorTools::IncrementRank< OutputGradient >::type | OutputTensor |
typedef TensorTools::DecrementRank< OutputShape >::type | OutputDivergence |
typedef TensorTools::MakeNumber< OutputShape >::type | OutputNumber |
typedef TensorTools::IncrementRank< OutputNumber >::type | OutputNumberGradient |
typedef TensorTools::IncrementRank< OutputNumberGradient >::type | OutputNumberTensor |
typedef TensorTools::DecrementRank< OutputNumber >::type | OutputNumberDivergence |
Public Member Functions | |
InfFE (const FEType &fet) | |
~InfFE () | |
virtual FEContinuity | get_continuity () const override |
virtual bool | is_hierarchic () const override |
virtual void | reinit (const Elem *elem, const std::vector< Point > *const pts=nullptr, const std::vector< Real > *const weights=nullptr) override |
virtual void | reinit (const Elem *elem, const unsigned int side, const Real tolerance=TOLERANCE, const std::vector< Point > *const pts=nullptr, const std::vector< Real > *const weights=nullptr) override |
virtual void | edge_reinit (const Elem *elem, const unsigned int edge, const Real tolerance=TOLERANCE, const std::vector< Point > *const pts=nullptr, const std::vector< Real > *const weights=nullptr) override |
virtual void | side_map (const Elem *, const Elem *, const unsigned int, const std::vector< Point > &, std::vector< Point > &) override |
virtual void | attach_quadrature_rule (QBase *q) override |
virtual unsigned int | n_shape_functions () const override |
virtual unsigned int | n_quadrature_points () const override |
template<> | |
std::unique_ptr< FEGenericBase< Real > > | build (const unsigned int dim, const FEType &fet) |
template<> | |
std::unique_ptr< FEGenericBase< RealGradient > > | build (const unsigned int dim, const FEType &fet) |
template<> | |
std::unique_ptr< FEGenericBase< Real > > | build_InfFE (const unsigned int dim, const FEType &fet) |
template<> | |
std::unique_ptr< FEGenericBase< RealGradient > > | build_InfFE (const unsigned int, const FEType &) |
const std::vector< std::vector< OutputShape > > & | get_phi () const |
const std::vector< std::vector< OutputGradient > > & | get_dphi () const |
const std::vector< std::vector< OutputShape > > & | get_curl_phi () const |
const std::vector< std::vector< OutputDivergence > > & | get_div_phi () const |
const std::vector< std::vector< OutputShape > > & | get_dphidx () const |
const std::vector< std::vector< OutputShape > > & | get_dphidy () const |
const std::vector< std::vector< OutputShape > > & | get_dphidz () const |
const std::vector< std::vector< OutputShape > > & | get_dphidxi () const |
const std::vector< std::vector< OutputShape > > & | get_dphideta () const |
const std::vector< std::vector< OutputShape > > & | get_dphidzeta () const |
const std::vector< std::vector< OutputTensor > > & | get_d2phi () const |
const std::vector< std::vector< OutputShape > > & | get_d2phidx2 () const |
const std::vector< std::vector< OutputShape > > & | get_d2phidxdy () const |
const std::vector< std::vector< OutputShape > > & | get_d2phidxdz () const |
const std::vector< std::vector< OutputShape > > & | get_d2phidy2 () const |
const std::vector< std::vector< OutputShape > > & | get_d2phidydz () const |
const std::vector< std::vector< OutputShape > > & | get_d2phidz2 () const |
const std::vector< std::vector< OutputShape > > & | get_d2phidxi2 () const |
const std::vector< std::vector< OutputShape > > & | get_d2phidxideta () const |
const std::vector< std::vector< OutputShape > > & | get_d2phidxidzeta () const |
const std::vector< std::vector< OutputShape > > & | get_d2phideta2 () const |
const std::vector< std::vector< OutputShape > > & | get_d2phidetadzeta () const |
const std::vector< std::vector< OutputShape > > & | get_d2phidzeta2 () const |
const std::vector< OutputGradient > & | get_dphase () const |
const std::vector< Real > & | get_Sobolev_weight () const |
const std::vector< RealGradient > & | get_Sobolev_dweight () const |
void | print_phi (std::ostream &os) const |
void | print_dphi (std::ostream &os) const |
void | print_d2phi (std::ostream &os) const |
unsigned int | get_dim () const |
const std::vector< Point > & | get_xyz () const |
const std::vector< Real > & | get_JxW () const |
const std::vector< RealGradient > & | get_dxyzdxi () const |
const std::vector< RealGradient > & | get_dxyzdeta () const |
const std::vector< RealGradient > & | get_dxyzdzeta () const |
const std::vector< RealGradient > & | get_d2xyzdxi2 () const |
const std::vector< RealGradient > & | get_d2xyzdeta2 () const |
const std::vector< RealGradient > & | get_d2xyzdzeta2 () const |
const std::vector< RealGradient > & | get_d2xyzdxideta () const |
const std::vector< RealGradient > & | get_d2xyzdxidzeta () const |
const std::vector< RealGradient > & | get_d2xyzdetadzeta () const |
const std::vector< Real > & | get_dxidx () const |
const std::vector< Real > & | get_dxidy () const |
const std::vector< Real > & | get_dxidz () const |
const std::vector< Real > & | get_detadx () const |
const std::vector< Real > & | get_detady () const |
const std::vector< Real > & | get_detadz () const |
const std::vector< Real > & | get_dzetadx () const |
const std::vector< Real > & | get_dzetady () const |
const std::vector< Real > & | get_dzetadz () const |
const std::vector< std::vector< Point > > & | get_tangents () const |
const std::vector< Point > & | get_normals () const |
const std::vector< Real > & | get_curvatures () const |
ElemType | get_type () const |
unsigned int | get_p_level () const |
FEType | get_fe_type () const |
Order | get_order () const |
void | set_fe_order (int new_order) |
FEFamily | get_family () const |
const FEMap & | get_fe_map () const |
void | print_JxW (std::ostream &os) const |
void | print_xyz (std::ostream &os) const |
void | print_info (std::ostream &os) const |
Static Public Member Functions | |
static Real | shape (const FEType &fet, const ElemType t, const unsigned int i, const Point &p) |
static Real | shape (const FEType &fet, const Elem *elem, const unsigned int i, const Point &p) |
static void | compute_data (const FEType &fe_t, const Elem *inf_elem, FEComputeData &data) |
static unsigned int | n_shape_functions (const FEType &fet, const ElemType t) |
static unsigned int | n_dofs (const FEType &fet, const ElemType inf_elem_type) |
static unsigned int | n_dofs_at_node (const FEType &fet, const ElemType inf_elem_type, const unsigned int n) |
static unsigned int | n_dofs_per_elem (const FEType &fet, const ElemType inf_elem_type) |
static void | nodal_soln (const FEType &fet, const Elem *elem, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln) |
static Point | map (const Elem *inf_elem, const Point &reference_point) |
static Point | inverse_map (const Elem *elem, const Point &p, const Real tolerance=TOLERANCE, const bool secure=true) |
static void | inverse_map (const Elem *elem, const std::vector< Point > &physical_points, std::vector< Point > &reference_points, const Real tolerance=TOLERANCE, const bool secure=true) |
static std::unique_ptr< FEGenericBase > | build (const unsigned int dim, const FEType &type) |
static std::unique_ptr< FEGenericBase > | build_InfFE (const unsigned int dim, const FEType &type) |
static void | compute_proj_constraints (DofConstraints &constraints, DofMap &dof_map, const unsigned int variable_number, const Elem *elem) |
static void | coarsened_dof_values (const NumericVector< Number > &global_vector, const DofMap &dof_map, const Elem *coarse_elem, DenseVector< Number > &coarse_dofs, const unsigned int var, const bool use_old_dof_indices=false) |
static void | coarsened_dof_values (const NumericVector< Number > &global_vector, const DofMap &dof_map, const Elem *coarse_elem, DenseVector< Number > &coarse_dofs, const bool use_old_dof_indices=false) |
static void | compute_periodic_constraints (DofConstraints &constraints, DofMap &dof_map, const PeriodicBoundaries &boundaries, const MeshBase &mesh, const PointLocatorBase *point_locator, const unsigned int variable_number, const Elem *elem) |
static bool | on_reference_element (const Point &p, const ElemType t, const Real eps=TOLERANCE) |
static void | get_refspace_nodes (const ElemType t, std::vector< Point > &nodes) |
static void | compute_node_constraints (NodeConstraints &constraints, const Elem *elem) |
static void | compute_periodic_node_constraints (NodeConstraints &constraints, const PeriodicBoundaries &boundaries, const MeshBase &mesh, const PointLocatorBase *point_locator, const Elem *elem) |
static void | print_info (std::ostream &out=libMesh::out) |
static std::string | get_info () |
static unsigned int | n_objects () |
static void | enable_print_counter_info () |
static void | disable_print_counter_info () |
Protected Types | |
typedef std::map< std::string, std::pair< unsigned int, unsigned int > > | Counts |
Protected Member Functions | |
void | update_base_elem (const Elem *inf_elem) |
virtual void | init_base_shape_functions (const std::vector< Point > &, const Elem *) override |
void | init_radial_shape_functions (const Elem *inf_elem, const std::vector< Point > *radial_pts=nullptr) |
void | init_shape_functions (const std::vector< Point > &radial_qp, const std::vector< Point > &base_qp, const Elem *inf_elem) |
void | init_face_shape_functions (const std::vector< Point > &qp, const Elem *side) |
void | combine_base_radial (const Elem *inf_elem) |
virtual void | compute_shape_functions (const Elem *, const std::vector< Point > &) override |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
template<> | |
Real | eval (Real v, Order o, unsigned i) |
template<> | |
Real | eval (Real v, Order o, unsigned i) |
template<> | |
Real | eval (Real v, Order o, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order o, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order o, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order o, unsigned i) |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
template<> | |
Real | eval_deriv (Real v, Order, unsigned i) |
void | determine_calculations () |
void | increment_constructor_count (const std::string &name) |
void | increment_destructor_count (const std::string &name) |
Static Protected Member Functions | |
static Real | eval (Real v, Order o_radial, unsigned int i) |
static Real | eval_deriv (Real v, Order o_radial, unsigned int i) |
static void | compute_node_indices (const ElemType inf_elem_type, const unsigned int outer_node_index, unsigned int &base_node, unsigned int &radial_node) |
static void | compute_node_indices_fast (const ElemType inf_elem_type, const unsigned int outer_node_index, unsigned int &base_node, unsigned int &radial_node) |
static void | compute_shape_indices (const FEType &fet, const ElemType inf_elem_type, const unsigned int i, unsigned int &base_shape, unsigned int &radial_shape) |
Protected Attributes | |
std::vector< Real > | dist |
std::vector< Real > | dweightdv |
std::vector< Real > | som |
std::vector< Real > | dsomdv |
std::vector< std::vector< Real > > | mode |
std::vector< std::vector< Real > > | dmodedv |
std::vector< std::vector< Real > > | radial_map |
std::vector< std::vector< Real > > | dradialdv_map |
std::vector< Real > | dphasedxi |
std::vector< Real > | dphasedeta |
std::vector< Real > | dphasedzeta |
std::vector< unsigned int > | _radial_node_index |
std::vector< unsigned int > | _base_node_index |
std::vector< unsigned int > | _radial_shape_index |
std::vector< unsigned int > | _base_shape_index |
unsigned int | _n_total_approx_sf |
unsigned int | _n_total_qp |
std::vector< Real > | _total_qrule_weights |
std::unique_ptr< QBase > | base_qrule |
std::unique_ptr< QBase > | radial_qrule |
std::unique_ptr< Elem > | base_elem |
std::unique_ptr< FEBase > | base_fe |
FEType | current_fe_type |
std::unique_ptr< FETransformationBase< OutputType > > | _fe_trans |
std::vector< std::vector< OutputShape > > | phi |
std::vector< std::vector< OutputGradient > > | dphi |
std::vector< std::vector< OutputShape > > | curl_phi |
std::vector< std::vector< OutputDivergence > > | div_phi |
std::vector< std::vector< OutputShape > > | dphidxi |
std::vector< std::vector< OutputShape > > | dphideta |
std::vector< std::vector< OutputShape > > | dphidzeta |
std::vector< std::vector< OutputShape > > | dphidx |
std::vector< std::vector< OutputShape > > | dphidy |
std::vector< std::vector< OutputShape > > | dphidz |
std::vector< std::vector< OutputTensor > > | d2phi |
std::vector< std::vector< OutputShape > > | d2phidxi2 |
std::vector< std::vector< OutputShape > > | d2phidxideta |
std::vector< std::vector< OutputShape > > | d2phidxidzeta |
std::vector< std::vector< OutputShape > > | d2phideta2 |
std::vector< std::vector< OutputShape > > | d2phidetadzeta |
std::vector< std::vector< OutputShape > > | d2phidzeta2 |
std::vector< std::vector< OutputShape > > | d2phidx2 |
std::vector< std::vector< OutputShape > > | d2phidxdy |
std::vector< std::vector< OutputShape > > | d2phidxdz |
std::vector< std::vector< OutputShape > > | d2phidy2 |
std::vector< std::vector< OutputShape > > | d2phidydz |
std::vector< std::vector< OutputShape > > | d2phidz2 |
std::vector< OutputGradient > | dphase |
std::vector< RealGradient > | dweight |
std::vector< Real > | weight |
std::unique_ptr< FEMap > | _fe_map |
const unsigned int | dim |
bool | calculations_started |
bool | calculate_phi |
bool | calculate_dphi |
bool | calculate_d2phi |
bool | calculate_curl_phi |
bool | calculate_div_phi |
bool | calculate_dphiref |
FEType | fe_type |
ElemType | elem_type |
unsigned int | _p_level |
QBase * | qrule |
bool | shapes_on_quadrature |
Static Protected Attributes | |
static Counts | _counts |
static Threads::atomic< unsigned int > | _n_objects |
static Threads::spin_mutex | _mutex |
static bool | _enable_print_counter = true |
Private Member Functions | |
virtual bool | shapes_need_reinit () const override |
Static Private Attributes | |
static ElemType | _compute_node_indices_fast_current_elem_type = INVALID_ELEM |
static bool | _warned_for_nodal_soln = false |
static bool | _warned_for_shape = false |
Friends | |
template<unsigned int friend_Dim, FEFamily friend_T_radial, InfMapType friend_T_map> | |
class | InfFE |
Base class for all the infinite geometric element types.
A specific instantiation of the FEBase
class. This class is templated, and specific template instantiations will result in different Infinite Element families, similar to the FE
class. InfFE
builds a FE<Dim-1
,T_base>, and most of the requests related to the base are handed over to this object. All methods related to the radial part are collected in the nested class Radial
. Similarly, most of the static methods concerning base approximation are contained in Base
.
Having different shape approximation families in radial direction introduces the requirement for an additional Order
in this class. Therefore, the FEType
internals change when infinite elements are enabled. When the specific infinite element type is not known at compile time, use the FEBase::build()
member to create abstract (but still optimized) infinite elements at run time.
The node numbering scheme is the one from the current infinite element. Each node in the base holds exactly the same number of dofs as an adjacent conventional FE
would contain. The nodes further out hold the additional dof necessary for radial approximation. The order of the outer nodes' components is such that the radial shapes have highest priority, followed by the base shapes.
|
protectedinherited |
Data structure to log the information. The log is identified by the class name.
Definition at line 117 of file reference_counter.h.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
explicit |
Constructor and empty destructor. Initializes some data structures. Builds a FE<Dim-1
,T_base> object to handle approximation in the base, so that there is no need to template InfFE<Dim,T_radial,T_map>
also with respect to the base approximation T_base
.
The same remarks concerning compile-time optimization for FE
also hold for InfFE
. Use the FEBase::build_InfFE(const unsigned int, const FEType &)
method to build specific instantiations of InfFE
at run time.
Definition at line 37 of file inf_fe.C.
References libMesh::InfFE< Dim, T_radial, T_map >::base_fe, libMesh::FEGenericBase< OutputType >::build(), libMesh::FEAbstract::fe_type, libMesh::FEType::inf_map, and libMesh::FEType::radial_family.
|
inline |
|
overridevirtual |
The use of quadrature rules with the InfFE
class is somewhat different from the approach of the FE
class. While the FE
class requires an appropriately initialized quadrature rule object, and simply uses it, the InfFE
class requires only the quadrature rule object of the current FE
class. From this QBase
*, it determines the necessary data, and builds two appropriate quadrature classes, one for radial, and another for base integration, using the convenient QBase::build()
method.
Implements libMesh::FEAbstract.
Definition at line 69 of file inf_fe.C.
References libMesh::QBase::build(), libMesh::QBase::get_dim(), libMesh::QBase::get_order(), and libMesh::QBase::type().
|
staticinherited |
Builds a specific finite element type. A std::unique_ptr<FEGenericBase>
is returned to prevent a memory leak. This way the user need not remember to delete the object.
The build call will fail if the OutputType of this class is not compatible with the output required for the requested type
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::FEMContext::cached_fe(), libMesh::System::calculate_norm(), libMesh::MeshFunction::discontinuous_gradient(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::MeshFunction::gradient(), libMesh::MeshFunction::hessian(), libMesh::InfFE< Dim, T_radial, T_map >::InfFE(), libMesh::InfFE< Dim, T_radial, T_map >::init_face_shape_functions(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::InfFE< Dim, T_radial, T_map >::reinit(), libMesh::HPCoarsenTest::select_refinement(), and libMesh::Elem::volume().
|
inherited |
Definition at line 182 of file fe_base.C.
|
inherited |
Definition at line 380 of file fe_base.C.
|
staticinherited |
Builds a specific infinite element type. A std::unique_ptr<FEGenericBase>
is returned to prevent a memory leak. This way the user need not remember to delete the object.
The build call will fail if the OutputShape of this class is not compatible with the output required for the requested type
Referenced by libMesh::FEMContext::cached_fe().
|
inherited |
Definition at line 453 of file fe_base.C.
|
inherited |
|
staticinherited |
Creates a local projection on coarse_elem
, based on the DoF values in global_vector
for it's children. Computes a vector of coefficients corresponding to dof_indices for only the single given var
Definition at line 791 of file fe_base.C.
Referenced by libMesh::JumpErrorEstimator::estimate_error(), and libMesh::ExactErrorEstimator::estimate_error().
|
staticinherited |
Creates a local projection on coarse_elem
, based on the DoF values in global_vector
for it's children. Computes a vector of coefficients corresponding to all dof_indices.
Definition at line 1343 of file fe_base.C.
|
protected |
Combines the shape functions, which were formed in init_shape_functions(Elem *)
, with geometric data. Has to be called every time the geometric configuration changes. Afterward, the fields are ready to be used to compute global derivatives, the jacobian etc, see FEAbstract::compute_map()
.
Definition at line 733 of file inf_fe.C.
References libMesh::Elem::origin(), and libMesh::Elem::type().
|
static |
Generalized version of shape()
, takes an Elem
*. The data
contains both input and output parameters. For frequency domain simulations, the complex-valued shape is returned. In time domain both the computed shape, and the phase is returned.
Point
data.p
from the envelope) is actually a measure how far into the future the results are. Definition at line 241 of file inf_fe_static.C.
References libMesh::Elem::build_side_ptr(), data, libMesh::InfFE< Dim, T_radial, T_map >::Radial::decay(), libMesh::InfFE< Dim, T_radial, T_map >::eval(), libMesh::imaginary, libMesh::INFEDGE2, libMesh::Elem::origin(), libMesh::pi, libMesh::Elem::point(), libMesh::FEType::radial_order, libMesh::Real, libMesh::FE< Dim, T >::shape(), libMesh::FEInterface::shape(), and libMesh::Elem::type().
Referenced by libMesh::FEInterface::ifem_compute_data().
|
staticinherited |
Computes the nodal constraint contributions (for non-conforming adapted meshes), using Lagrange geometry
Definition at line 820 of file fe_abstract.C.
References std::abs(), libMesh::Elem::build_side_ptr(), libMesh::Elem::default_order(), libMesh::Elem::dim(), libMesh::FEAbstract::fe_type, libMesh::FEInterface::inverse_map(), libMesh::LAGRANGE, libMesh::Elem::level(), libMesh::FEInterface::n_dofs(), libMesh::Elem::neighbor_ptr(), libMesh::Elem::parent(), libMesh::Real, libMesh::remote_elem, libMesh::FEInterface::shape(), libMesh::Elem::side_index_range(), libMesh::Threads::spin_mtx, and libMesh::Elem::subactive().
|
staticprotected |
Computes the indices in the base base_node
and in radial direction radial_node
(either 0 or 1) associated to the node outer_node_index
of an infinite element of type inf_elem_type
.
Definition at line 361 of file inf_fe_static.C.
References libMesh::INFEDGE2, libMesh::INFHEX16, libMesh::INFHEX18, libMesh::INFHEX8, libMesh::INFPRISM12, libMesh::INFPRISM6, libMesh::INFQUAD4, and libMesh::INFQUAD6.
|
staticprotected |
Does the same as compute_node_indices()
, but stores the maps for the current element type. Provided the infinite element type changes seldom, this is probably faster than using compute_node_indices
() alone. This is possible since the number of nodes is not likely to change.
Definition at line 568 of file inf_fe_static.C.
References libMesh::INFEDGE2, libMesh::INFHEX16, libMesh::INFHEX18, libMesh::INFHEX8, libMesh::INFPRISM12, libMesh::INFPRISM6, libMesh::INFQUAD4, libMesh::INFQUAD6, libMesh::INVALID_ELEM, libMesh::invalid_uint, and n_nodes.
|
staticinherited |
Computes the constraint matrix contributions (for meshes with periodic boundary conditions) corresponding to variable number var_number
, using generic projections.
Definition at line 1650 of file fe_base.C.
Referenced by libMesh::FEInterface::compute_periodic_constraints().
|
staticinherited |
Computes the node position constraint equation contributions (for meshes with periodic boundary conditions)
Definition at line 965 of file fe_abstract.C.
References libMesh::Elem::active(), libMesh::PeriodicBoundaries::boundary(), libMesh::Elem::build_side_ptr(), libMesh::Elem::default_order(), libMesh::Elem::dim(), libMesh::FEAbstract::fe_type, libMesh::PeriodicBoundaryBase::get_corresponding_pos(), libMesh::invalid_uint, libMesh::FEInterface::inverse_map(), libMesh::LAGRANGE, libMesh::Elem::level(), mesh, libMesh::FEInterface::n_dofs(), libMesh::PeriodicBoundaries::neighbor(), libMesh::Elem::neighbor_ptr(), libMesh::PeriodicBoundaryBase::pairedboundary, libMesh::Real, libMesh::FEInterface::shape(), libMesh::Elem::side_index_range(), and libMesh::Threads::spin_mtx.
|
staticinherited |
Computes the constraint matrix contributions (for non-conforming adapted meshes) corresponding to variable number var_number
, using generic projections.
Definition at line 1366 of file fe_base.C.
Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::compute_constraints().
|
overrideprotectedvirtual |
After having updated the jacobian and the transformation from local to global coordinates in FEAbstract::compute_map(), the first derivatives of the shape functions are transformed to global coordinates, giving dphi
, dphidx/y/z
, dphasedx/y/z
, dweight
. This method should barely be re-defined in derived classes, but still should be usable for children. Therefore, keep it protected.
Reimplemented from libMesh::FEGenericBase< OutputType >.
Definition at line 878 of file inf_fe.C.
References libMesh::index_range().
|
staticprotected |
Computes the indices of shape functions in the base base_shape
and in radial direction radial_shape
(0 in the base, further out) associated to the shape with global index
i
of an infinite element of type inf_elem_type
.
Definition at line 677 of file inf_fe_static.C.
References libMesh::OrderWrapper::get_order(), libMesh::INFEDGE2, libMesh::INFHEX16, libMesh::INFHEX18, libMesh::INFHEX8, libMesh::INFPRISM12, libMesh::INFPRISM6, libMesh::INFQUAD4, libMesh::INFQUAD6, libMesh::invalid_uint, libMesh::FEInterface::n_dofs_at_node(), libMesh::FEInterface::n_dofs_per_elem(), and libMesh::FEType::radial_order.
|
protectedinherited |
Determine which values are to be calculated, for both the FE itself and for the FEMap.
Definition at line 728 of file fe_base.C.
|
staticinherited |
Definition at line 106 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
Referenced by libMesh::LibMeshInit::LibMeshInit().
|
overridevirtual |
Not implemented yet. Reinitializes all the physical element-dependent data based on the edge
of an infinite element.
Implements libMesh::FEAbstract.
Definition at line 104 of file inf_fe_boundary.C.
|
staticinherited |
Methods to enable/disable the reference counter output from print_info()
Definition at line 100 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter.
|
protected |
Definition at line 69 of file inf_fe_map_eval.C.
|
protected |
Definition at line 70 of file inf_fe_map_eval.C.
|
protected |
Definition at line 71 of file inf_fe_map_eval.C.
|
protected |
Definition at line 310 of file inf_fe_legendre_eval.C.
|
protected |
Definition at line 311 of file inf_fe_legendre_eval.C.
|
protected |
Definition at line 312 of file inf_fe_legendre_eval.C.
|
protected |
Definition at line 457 of file inf_fe_jacobi_30_00_eval.C.
|
protected |
Definition at line 458 of file inf_fe_jacobi_30_00_eval.C.
|
protected |
Definition at line 459 of file inf_fe_jacobi_30_00_eval.C.
|
protected |
Definition at line 462 of file inf_fe_jacobi_20_00_eval.C.
|
protected |
Definition at line 463 of file inf_fe_jacobi_20_00_eval.C.
|
protected |
Definition at line 464 of file inf_fe_jacobi_20_00_eval.C.
|
staticprotected |
v
. This method provides the approximation in radial direction for the overall shape functions, which is defined in InfFE::shape()
. This method is allowed to be static, since it is independent of dimension and base_family. It is templated, though, w.r.t. to radial FEFamily
.v
when T_radial == INFINITE_MAP. Currently, only one specific mapping shape is used. Namely the one by Marques JMMC, Owen DRJ: Infinite elements in quasi-static materially nonlinear problems, Computers and Structures, 1984. Referenced by libMesh::InfFE< Dim, T_radial, T_map >::compute_data(), libMesh::InfFE< Dim, T_radial, T_map >::init_radial_shape_functions(), and libMesh::InfFE< Dim, T_radial, T_map >::shape().
|
protected |
Definition at line 2607 of file inf_fe_lagrange_eval.C.
|
protected |
Definition at line 2608 of file inf_fe_lagrange_eval.C.
|
protected |
Definition at line 2609 of file inf_fe_lagrange_eval.C.
|
protected |
Definition at line 75 of file inf_fe_map_eval.C.
|
protected |
Definition at line 76 of file inf_fe_map_eval.C.
|
protected |
Definition at line 77 of file inf_fe_map_eval.C.
|
protected |
Definition at line 316 of file inf_fe_legendre_eval.C.
|
protected |
Definition at line 317 of file inf_fe_legendre_eval.C.
|
protected |
Definition at line 318 of file inf_fe_legendre_eval.C.
|
protected |
Definition at line 463 of file inf_fe_jacobi_30_00_eval.C.
|
protected |
Definition at line 464 of file inf_fe_jacobi_30_00_eval.C.
|
protected |
Definition at line 465 of file inf_fe_jacobi_30_00_eval.C.
|
protected |
Definition at line 468 of file inf_fe_jacobi_20_00_eval.C.
|
protected |
Definition at line 469 of file inf_fe_jacobi_20_00_eval.C.
|
protected |
Definition at line 470 of file inf_fe_jacobi_20_00_eval.C.
|
staticprotected |
v
. See eval
for details. Referenced by libMesh::InfFE< Dim, T_radial, T_map >::init_radial_shape_functions().
|
protected |
Definition at line 2613 of file inf_fe_lagrange_eval.C.
|
protected |
Definition at line 2614 of file inf_fe_lagrange_eval.C.
|
protected |
Definition at line 2615 of file inf_fe_lagrange_eval.C.
|
inlineoverridevirtual |
Implements libMesh::FEAbstract.
Definition at line 332 of file inf_fe.h.
References libMesh::C_ZERO.
|
inlineinherited |
Definition at line 223 of file fe_base.h.
Referenced by libMesh::ExactSolution::_compute_error(), and libMesh::FEMContext::interior_curl().
|
inlineinherited |
Definition at line 391 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 289 of file fe_base.h.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::System::calculate_norm(), libMesh::ExactErrorEstimator::find_squared_element_error(), libMesh::LaplacianErrorEstimator::init_context(), libMesh::ParsedFEMFunction< T >::init_context(), libMesh::FEMContext::interior_hessians(), libMesh::LaplacianErrorEstimator::internal_side_integration(), libMesh::FEMContext::side_hessians(), and libMesh::FEMContext::some_hessian().
|
inlineinherited |
Definition at line 369 of file fe_base.h.
Referenced by libMesh::H1FETransformation< OutputShape >::map_d2phi().
|
inlineinherited |
Definition at line 377 of file fe_base.h.
Referenced by libMesh::H1FETransformation< OutputShape >::map_d2phi().
|
inlineinherited |
Definition at line 297 of file fe_base.h.
|
inlineinherited |
Definition at line 305 of file fe_base.h.
|
inlineinherited |
Definition at line 313 of file fe_base.h.
|
inlineinherited |
Definition at line 345 of file fe_base.h.
Referenced by libMesh::H1FETransformation< OutputShape >::map_d2phi().
|
inlineinherited |
Definition at line 353 of file fe_base.h.
Referenced by libMesh::H1FETransformation< OutputShape >::map_d2phi().
|
inlineinherited |
Definition at line 361 of file fe_base.h.
Referenced by libMesh::H1FETransformation< OutputShape >::map_d2phi().
|
inlineinherited |
Definition at line 321 of file fe_base.h.
|
inlineinherited |
Definition at line 329 of file fe_base.h.
|
inlineinherited |
Definition at line 337 of file fe_base.h.
|
inlineinherited |
Definition at line 385 of file fe_base.h.
Referenced by libMesh::H1FETransformation< OutputShape >::map_d2phi().
|
inlineinherited |
Definition at line 278 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 308 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 272 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 294 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 302 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 286 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 338 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 345 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 352 of file fe_abstract.h.