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.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 231 of file fe_abstract.h.
References libMesh::FEAbstract::dim.
|
inlineinherited |
Definition at line 231 of file fe_base.h.
Referenced by libMesh::ExactSolution::_compute_error(), and libMesh::FEMContext::interior_div().
|
inlineinherited |
In case of the general finite element class FE
this field is initialized to all zero, so that the variational formulation for an infinite element produces correct element matrices for a mesh using both finite and infinite elements.
Definition at line 403 of file fe_base.h.
|
inlineinherited |
Definition at line 215 of file fe_base.h.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::KellyErrorEstimator::boundary_side_integration(), libMesh::System::calculate_norm(), libMesh::OldSolutionCoefs< Output, point_output >::eval_at_point(), libMesh::ExactErrorEstimator::find_squared_element_error(), libMesh::OldSolutionBase< Output, point_output >::get_shape_outputs(), libMesh::ParsedFEMFunction< T >::init_context(), libMesh::KellyErrorEstimator::init_context(), libMesh::FEMContext::interior_gradients(), libMesh::KellyErrorEstimator::internal_side_integration(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()(), libMesh::FEMContext::side_gradient(), libMesh::FEMContext::side_gradients(), and libMesh::FEMContext::some_gradient().
|
inlineinherited |
Definition at line 271 of file fe_base.h.
Referenced by libMesh::HCurlFETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_d2phi(), libMesh::H1FETransformation< OutputShape >::map_div(), and libMesh::H1FETransformation< OutputShape >::map_dphi().
|
inlineinherited |
Definition at line 239 of file fe_base.h.
|
inlineinherited |
Definition at line 263 of file fe_base.h.
Referenced by libMesh::HCurlFETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_d2phi(), libMesh::H1FETransformation< OutputShape >::map_div(), and libMesh::H1FETransformation< OutputShape >::map_dphi().
|
inlineinherited |
Definition at line 247 of file fe_base.h.
|
inlineinherited |
Definition at line 255 of file fe_base.h.
|
inlineinherited |
Definition at line 279 of file fe_base.h.
Referenced by libMesh::HCurlFETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_d2phi(), libMesh::H1FETransformation< OutputShape >::map_div(), and libMesh::H1FETransformation< OutputShape >::map_dphi().
|
inlineinherited |
Definition at line 317 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 324 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 331 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 259 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 252 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 266 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 359 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 366 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 373 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 455 of file fe_abstract.h.
References libMesh::FEType::family, and libMesh::FEAbstract::fe_type.
|
inlineinherited |
Definition at line 460 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
Referenced by libMesh::HCurlFETransformation< OutputShape >::init_map_d2phi(), libMesh::H1FETransformation< OutputShape >::init_map_d2phi(), libMesh::HCurlFETransformation< OutputShape >::init_map_dphi(), libMesh::H1FETransformation< OutputShape >::init_map_dphi(), libMesh::HCurlFETransformation< OutputShape >::init_map_phi(), libMesh::HCurlFETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_d2phi(), libMesh::H1FETransformation< OutputShape >::map_div(), libMesh::H1FETransformation< OutputShape >::map_dphi(), and libMesh::HCurlFETransformation< OutputShape >::map_phi().
|
inlineinherited |
Definition at line 429 of file fe_abstract.h.
References libMesh::FEAbstract::fe_type.
Referenced by libMesh::FEMContext::build_new_fe(), libMesh::HCurlFETransformation< OutputShape >::map_phi(), libMesh::H1FETransformation< OutputShape >::map_phi(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()(), and libMesh::JumpErrorEstimator::reinit_sides().
|
staticinherited |
Gets a string containing the reference information.
Definition at line 47 of file reference_counter.C.
References libMesh::ReferenceCounter::_counts, and libMesh::Quality::name().
Referenced by libMesh::ReferenceCounter::print_info().
|
inlineinherited |
Definition at line 245 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::DiscontinuityMeasure::boundary_side_integration(), libMesh::KellyErrorEstimator::boundary_side_integration(), libMesh::System::calculate_norm(), libMesh::ExactErrorEstimator::find_squared_element_error(), libMesh::FEMSystem::init_context(), libMesh::LaplacianErrorEstimator::internal_side_integration(), libMesh::DiscontinuityMeasure::internal_side_integration(), libMesh::KellyErrorEstimator::internal_side_integration(), and libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()().
|
inlineinherited |
Definition at line 385 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
Referenced by libMesh::KellyErrorEstimator::boundary_side_integration(), libMesh::ParsedFEMFunction< T >::eval_args(), libMesh::ParsedFEMFunction< T >::init_context(), libMesh::KellyErrorEstimator::init_context(), and libMesh::KellyErrorEstimator::internal_side_integration().
|
inlineinherited |
Definition at line 434 of file fe_abstract.h.
References libMesh::FEAbstract::_p_level, libMesh::FEAbstract::fe_type, and libMesh::FEType::order.
|
inlineinherited |
Definition at line 424 of file fe_abstract.h.
References libMesh::FEAbstract::_p_level.
|
inlineinherited |
Definition at line 207 of file fe_base.h.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::DiscontinuityMeasure::boundary_side_integration(), libMesh::System::calculate_norm(), libMesh::OldSolutionCoefs< Output, point_output >::eval_at_point(), libMesh::ExactErrorEstimator::find_squared_element_error(), libMesh::OldSolutionBase< Output, point_output >::get_shape_outputs(), libMesh::DiscontinuityMeasure::init_context(), libMesh::ParsedFEMFunction< T >::init_context(), libMesh::FEMSystem::init_context(), libMesh::FEMContext::interior_values(), libMesh::DiscontinuityMeasure::internal_side_integration(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()(), libMesh::FEMContext::side_values(), and libMesh::FEMContext::some_value().
|
staticinherited |
nodes
based on the element type. Definition at line 283 of file fe_abstract.C.
References libMesh::EDGE2, libMesh::EDGE3, libMesh::HEX20, libMesh::HEX27, libMesh::HEX8, libMesh::PRISM15, libMesh::PRISM18, libMesh::PRISM6, libMesh::PYRAMID13, libMesh::PYRAMID14, libMesh::PYRAMID5, libMesh::QUAD4, libMesh::QUAD8, libMesh::QUAD9, libMesh::QUADSHELL4, libMesh::QUADSHELL8, libMesh::TET10, libMesh::TET4, libMesh::TRI3, libMesh::TRI6, and libMesh::TRISHELL3.
|
inlineinherited |
get_Sobolev_weight()
for details. In case of FE
initialized to all zero. Definition at line 427 of file fe_base.h.
|
inlineinherited |
In case of the general finite element class FE
this field is initialized to all ones, so that the variational formulation for an infinite element produces correct element matrices for a mesh using both finite and infinite elements.
Definition at line 419 of file fe_base.h.
|
inlineinherited |
Definition at line 379 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
|
inlineinherited |
Definition at line 418 of file fe_abstract.h.
References libMesh::FEAbstract::elem_type.
|
inlineinherited |
xyz
spatial locations of the quadrature points on the element. Definition at line 238 of file fe_abstract.h.
References libMesh::FEAbstract::_fe_map.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::DiscontinuityMeasure::boundary_side_integration(), libMesh::KellyErrorEstimator::boundary_side_integration(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::ParsedFEMFunction< T >::eval_args(), libMesh::ExactErrorEstimator::find_squared_element_error(), libMesh::ParsedFEMFunction< T >::init_context(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), and libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()().
|
inlineprotectedinherited |
Increments the construction counter. Should be called in the constructor of any derived class that will be reference counted.
Definition at line 181 of file reference_counter.h.
References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::ReferenceCountedObject().
|
inlineprotectedinherited |
Increments the destruction counter. Should be called in the destructor of any derived class that will be reference counted.
Definition at line 194 of file reference_counter.h.
References libMesh::ReferenceCounter::_counts, libMesh::Quality::name(), and libMesh::Threads::spin_mtx.
Referenced by libMesh::ReferenceCountedObject< RBParametrized >::~ReferenceCountedObject().
|
inlineoverrideprotectedvirtual |
Do not use this derived member in InfFE<Dim,T_radial,T_map>
.
Implements libMesh::FEGenericBase< OutputType >.
|
protected |
Not implemented yet. Initialize all the data fields like weight
, phi
, etc for the side s
.
Definition at line 122 of file inf_fe_boundary.C.
References libMesh::FEGenericBase< OutputType >::build(), libMesh::Elem::p_level(), and libMesh::Elem::type().
|
protected |
Some of the member data only depend on the radial part of the infinite element. The parts that only change when the radial order changes, are initialized here.
Definition at line 320 of file inf_fe.C.
References libMesh::InfFE< Dim, T_radial, T_map >::eval(), and libMesh::InfFE< Dim, T_radial, T_map >::eval_deriv().
|
protected |
Initialize all the data fields like weight
, mode
, phi
, dphidxi
, dphideta
, dphidzeta
, etc. for the current element. This method prepares the data related to the base part, and some of the combined fields.
Definition at line 404 of file inf_fe.C.
References libMesh::Elem::type(), and libMesh::MeshTools::weight().
|
static |
p
located in physical space. First, the location in the base face is computed. This requires inverting the (possibly nonlinear) transformation map in the base, so it is not trivial. The optional parameter tolerance
defines how close is "good enough." The map inversion iteration computes the sequence , and the iteration is terminated when . Once the base face point is determined, the radial local coordinate is directly evaluated. If interpolated
is true, the interpolated distance from the base element to the infinite element origin is used for the map in radial direction. Definition at line 90 of file inf_fe_map.C.
References libMesh::TypeVector< T >::add_scaled(), libMesh::CARTESIAN, libMesh::FE< Dim, T >::inverse_map(), libMesh::libmesh_isinf(), libMesh::InfFE< Dim, T_radial, T_map >::map(), libMesh::TypeVector< T >::norm(), libMesh::Elem::origin(), and libMesh::Real.
Referenced by libMesh::FEInterface::ifem_inverse_map().
|
static |
Takes a number points in physical space (in the physical_points
vector) and finds their location on the reference element for the input element elem
. The values on the reference element are returned in the vector reference_points
Definition at line 269 of file inf_fe_map.C.
References libMesh::TypeVector< T >::size().
|
inlineoverridevirtual |
true
if the element's higher order shape functions are hierarchic Implements libMesh::FEAbstract.
|
static |
p
located on the reference element. Definition at line 40 of file inf_fe_map.C.
References libMesh::TypeVector< T >::add_scaled(), libMesh::FE< Dim, T >::map(), libMesh::Elem::origin(), libMesh::Elem::point(), and libMesh::Real.
Referenced by libMesh::FEInterface::ifem_map(), and libMesh::InfFE< Dim, T_radial, T_map >::inverse_map().
|
static |
o_radial+1
modes in radial direction, andDefinition at line 55 of file inf_fe_static.C.
References libMesh::FEInterface::n_dofs(), and libMesh::FEType::radial_order.
Referenced by libMesh::FEInterface::ifem_n_dofs(), and libMesh::InfFE< Dim, T_radial, T_map >::n_shape_functions().
|
static |
n
(not dof!) for an element of type t
and order o
. Definition at line 72 of file inf_fe_static.C.
References libMesh::FEInterface::n_dofs_at_node(), and libMesh::FEType::radial_order.
Referenced by libMesh::FEInterface::ifem_n_dofs_at_node().
|
static |
Definition at line 101 of file inf_fe_static.C.
References libMesh::FEInterface::n_dofs_per_elem(), and libMesh::FEType::radial_order.
Referenced by libMesh::FEInterface::ifem_n_dofs_per_elem().
|
inlinestaticinherited |
Prints the number of outstanding (created, but not yet destroyed) objects.
Definition at line 83 of file reference_counter.h.
References libMesh::ReferenceCounter::_n_objects.
|
inlineoverridevirtual |
for
loop in your simulation for matrix assembly of the current element. Implements libMesh::FEAbstract.
Definition at line 468 of file inf_fe.h.
References libMesh::InfFE< Dim, T_radial, T_map >::_n_total_qp, and libMesh::InfFE< Dim, T_radial, T_map >::radial_qrule.
|
inlinestatic |
t
and approximation order o
. Definition at line 301 of file inf_fe.h.
References libMesh::InfFE< Dim, T_radial, T_map >::n_dofs().
|
inlineoverridevirtual |
Implements libMesh::FEAbstract.
Definition at line 460 of file inf_fe.h.
References libMesh::InfFE< Dim, T_radial, T_map >::_n_total_approx_sf.
Referenced by libMesh::FEInterface::ifem_n_shape_functions().
|
static |
Usually, this method would build the nodal soln from the element soln. But infinite elements require additional simulation-specific data to compute physically correct results. Use compute_data()
to compute results. For compatibility an empty vector is returned.
Definition at line 119 of file inf_fe_static.C.
References libMesh::err.
Referenced by libMesh::FEInterface::ifem_nodal_soln().
|
staticinherited |
true
if the point p is located on the reference element for element type t, false otherwise. Since we are doing floating point comparisons here the parameter eps
can be specified to indicate a tolerance. For example, becomes . Definition at line 581 of file fe_abstract.C.
References libMesh::EDGE2, libMesh::EDGE3, libMesh::EDGE4, libMesh::HEX20, libMesh::HEX27, libMesh::HEX8, libMesh::INFHEX16, libMesh::INFHEX18, libMesh::INFHEX8, libMesh::INFPRISM12, libMesh::INFPRISM6, libMesh::NODEELEM, libMesh::PRISM15, libMesh::PRISM18, libMesh::PRISM6, libMesh::PYRAMID13, libMesh::PYRAMID14, libMesh::PYRAMID5, libMesh::QUAD4, libMesh::QUAD8, libMesh::QUAD9, libMesh::QUADSHELL4, libMesh::QUADSHELL8, libMesh::Real, libMesh::TET10, libMesh::TET4, libMesh::TRI3, libMesh::TRI6, and libMesh::TRISHELL3.
Referenced by libMesh::FEInterface::ifem_on_reference_element(), libMesh::FE< Dim, LAGRANGE_VEC >::inverse_map(), and libMesh::FEInterface::on_reference_element().
|
virtualinherited |
Prints the value of each shape function's second derivatives at each quadrature point.
Implements libMesh::FEAbstract.
Definition at line 776 of file fe_base.C.
|
virtualinherited |
Prints the value of each shape function's derivative at each quadrature point.
Implements libMesh::FEAbstract.
Definition at line 718 of file fe_base.C.
|
staticinherited |
Prints the reference information, by default to libMesh::out
.
Definition at line 87 of file reference_counter.C.
References libMesh::ReferenceCounter::_enable_print_counter, and libMesh::ReferenceCounter::get_info().
|
inherited |
Prints all the relevant information about the current element.
Definition at line 793 of file fe_abstract.C.
References libMesh::FEAbstract::print_dphi(), libMesh::FEAbstract::print_JxW(), libMesh::FEAbstract::print_phi(), and libMesh::FEAbstract::print_xyz().
Referenced by libMesh::operator<<().
|
inherited |
Prints the Jacobian times the weight for each quadrature point.
Definition at line 780 of file fe_abstract.C.
References libMesh::FEAbstract::_fe_map.
Referenced by libMesh::FEAbstract::print_info().
|
virtualinherited |
Prints the value of each shape function at each quadrature point.
Implements libMesh::FEAbstract.
Definition at line 707 of file fe_base.C.
|
inherited |
Prints the spatial location of each quadrature point (on the physical element).
Definition at line 787 of file fe_abstract.C.
References libMesh::FEAbstract::_fe_map.
Referenced by libMesh::FEAbstract::print_info().
|
overridevirtual |
This is at the core of this class. Use this for each new element in the mesh. Reinitializes all the physical element-dependent data based on the current element elem
.
Implements libMesh::FEAbstract.
Definition at line 109 of file inf_fe.C.
References libMesh::FEGenericBase< OutputType >::build(), libMesh::EDGE2, libMesh::index_range(), libMesh::Real, and libMesh::Elem::type().
|
overridevirtual |
Not implemented yet. Reinitializes all the physical element-dependent data based on the side
of an infinite element.
Implements libMesh::FEAbstract.
Definition at line 36 of file inf_fe_boundary.C.
References libMesh::Elem::build_side_ptr(), libMesh::EDGE2, libMesh::Elem::p_level(), side, and libMesh::Elem::type().
|
inlineinherited |
Sets the base FE order of the finite element.
Definition at line 439 of file fe_abstract.h.
References libMesh::FEAbstract::fe_type, and libMesh::FEType::order.
|
static |
p
. This method lets you specify the relevant data directly, and is therefore allowed to be static.FE<Dim,T>
, and is not employed in the reinit()
cycle.compute_data()
. The shape()
methods should only be used for mapping. Definition at line 154 of file inf_fe_static.C.
References libMesh::InfFE< Dim, T_radial, T_map >::Radial::decay(), libMesh::err, libMesh::InfFE< Dim, T_radial, T_map >::eval(), libMesh::INFINITE_MAP, libMesh::FEType::radial_order, libMesh::Real, and libMesh::FEInterface::shape().
Referenced by libMesh::FEInterface::ifem_shape().
|
static |
p
. This method lets you specify the relevant data directly, and is therefore allowed to be static.FE<Dim,T>
, and is not employed in the reinit()
cycle.compute_data()
. The shape()
methods should only be used for mapping. Definition at line 198 of file inf_fe_static.C.
References libMesh::Elem::build_side_ptr(), libMesh::InfFE< Dim, T_radial, T_map >::Radial::decay(), libMesh::err, libMesh::InfFE< Dim, T_radial, T_map >::eval(), libMesh::INFINITE_MAP, libMesh::FEType::radial_order, libMesh::Real, libMesh::FEInterface::shape(), and libMesh::Elem::type().
|
overrideprivatevirtual |
false
, currently not required. Implements libMesh::FEAbstract.
|
inlineoverridevirtual |
Computes the reference space quadrature points on the side of an element based on the side quadrature points.
Implements libMesh::FEAbstract.
|
protected |
Updates the protected member base_elem
to the appropriate base element for the given inf_elem
.
Definition at line 98 of file inf_fe.C.
|
friend |
|
protected |
|
protected |
|
staticprivate |
When compute_node_indices_fast()
is used, this static variable remembers the element type for which the static variables in compute_node_indices_fast()
are currently set. Using a class member for the element type helps initializing it to a default value.
|
staticprotectedinherited |
Actually holds the data.
Definition at line 122 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::get_info(), libMesh::ReferenceCounter::increment_constructor_count(), and libMesh::ReferenceCounter::increment_destructor_count().
|
staticprotectedinherited |
Flag to control whether reference count information is printed when print_info is called.
Definition at line 141 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::disable_print_counter_info(), libMesh::ReferenceCounter::enable_print_counter_info(), and libMesh::ReferenceCounter::print_info().
|
protectedinherited |
Definition at line 525 of file fe_abstract.h.
Referenced by libMesh::FEAbstract::get_curvatures(), libMesh::FEAbstract::get_d2xyzdeta2(), libMesh::FEAbstract::get_d2xyzdetadzeta(), libMesh::FEAbstract::get_d2xyzdxi2(), libMesh::FEAbstract::get_d2xyzdxideta(), libMesh::FEAbstract::get_d2xyzdxidzeta(), libMesh::FEAbstract::get_d2xyzdzeta2(), libMesh::FEAbstract::get_detadx(), libMesh::FEAbstract::get_detady(), libMesh::FEAbstract::get_detadz(), libMesh::FEAbstract::get_dxidx(), libMesh::FEAbstract::get_dxidy(), libMesh::FEAbstract::get_dxidz(), libMesh::FEAbstract::get_dxyzdeta(), libMesh::FEAbstract::get_dxyzdxi(), libMesh::FEAbstract::get_dxyzdzeta(), libMesh::FEAbstract::get_dzetadx(), libMesh::FEAbstract::get_dzetady(), libMesh::FEAbstract::get_dzetadz(), libMesh::FEAbstract::get_fe_map(), libMesh::FEAbstract::get_JxW(), libMesh::FEAbstract::get_normals(), libMesh::FEAbstract::get_tangents(), libMesh::FEAbstract::get_xyz(), libMesh::FESubdivision::init_shape_functions(), libMesh::FEAbstract::print_JxW(), and libMesh::FEAbstract::print_xyz().
|
protectedinherited |
|
staticprotectedinherited |
Mutual exclusion object to enable thread-safe reference counting.
Definition at line 135 of file reference_counter.h.
|
staticprotectedinherited |
The number of objects. Print the reference count information when the number returns to 0.
Definition at line 130 of file reference_counter.h.
Referenced by libMesh::ReferenceCounter::n_objects(), libMesh::ReferenceCounter::ReferenceCounter(), and libMesh::ReferenceCounter::~ReferenceCounter().
|
protected |
The number of total approximation shape functions for the current configuration
Definition at line 734 of file inf_fe.h.
Referenced by libMesh::InfFE< Dim, T_radial, T_map >::n_shape_functions().
|
protected |
The total number of quadrature points for the current configuration
Definition at line 740 of file inf_fe.h.
Referenced by libMesh::InfFE< Dim, T_radial, T_map >::n_quadrature_points().
|
protectedinherited |
The p refinement level the current data structures are set up for.
Definition at line 587 of file fe_abstract.h.
Referenced by libMesh::FEAbstract::get_order(), and libMesh::FEAbstract::get_p_level().
|
protected |
|
protected |
|
protected |
|
staticprivate |
|
staticprivate |
|
protected |
|
protected |
Have a FE<Dim-1
,T_base> handy for base approximation. Since this one is created using the FEBase::build()
method, the InfFE
class is not required to be templated w.r.t. to the base approximation shape.
Definition at line 772 of file inf_fe.h.
Referenced by libMesh::InfFE< Dim, T_radial, T_map >::InfFE().
|
protected |
|
mutableprotectedinherited |
Should we calculate shape function curls?
Definition at line 557 of file fe_abstract.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_curl_phi().
|
mutableprotectedinherited |
Should we calculate shape function hessians?
Definition at line 552 of file fe_abstract.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phideta2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidetadzeta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidx2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxdy(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxdz(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxi2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxideta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxidzeta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidy2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidydz(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidz2(), and libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidzeta2().
|
mutableprotectedinherited |
Should we calculate shape function divergences?
Definition at line 562 of file fe_abstract.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_div_phi().
|
mutableprotectedinherited |
Should we calculate shape function gradients?
Definition at line 547 of file fe_abstract.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidx(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidy(), and libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidz().
|
mutableprotectedinherited |
Should we calculate reference shape function gradients?
Definition at line 567 of file fe_abstract.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_curl_phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phideta2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidetadzeta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidx2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxdy(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxdz(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxi2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxideta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxidzeta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidy2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidydz(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidz2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidzeta2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_div_phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphideta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidx(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidxi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidy(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidz(), and libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidzeta().
|
mutableprotectedinherited |
Should we calculate shape functions?
Definition at line 542 of file fe_abstract.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_phi().
|
mutableprotectedinherited |
Have calculations with this object already been started? Then all get_* functions should already have been called.
Definition at line 537 of file fe_abstract.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_curl_phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phideta2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidetadzeta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidx2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxdy(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxdz(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxi2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxideta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxidzeta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidy2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidydz(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidz2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidzeta2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_div_phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphideta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidx(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidxi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidy(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidz(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidzeta(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_phi(), and libMesh::FESubdivision::init_shape_functions().
|
protectedinherited |
Shape function curl values. Only defined for vector types.
Definition at line 508 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_curl_phi().
|
protected |
|
protectedinherited |
Shape function second derivative values.
Definition at line 551 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phi().
|
protectedinherited |
Shape function second derivatives in the eta direction.
Definition at line 571 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phideta2().
|
protectedinherited |
Shape function second derivatives in the eta-zeta direction.
Definition at line 576 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidetadzeta().
|
protectedinherited |
Shape function second derivatives in the x direction.
Definition at line 586 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidx2().
|
protectedinherited |
Shape function second derivatives in the x-y direction.
Definition at line 591 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxdy().
|
protectedinherited |
Shape function second derivatives in the x-z direction.
Definition at line 596 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxdz().
|
protectedinherited |
Shape function second derivatives in the xi direction.
Definition at line 556 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxi2().
|
protectedinherited |
Shape function second derivatives in the xi-eta direction.
Definition at line 561 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxideta().
|
protectedinherited |
Shape function second derivatives in the xi-zeta direction.
Definition at line 566 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxidzeta().
|
protectedinherited |
Shape function second derivatives in the y direction.
Definition at line 601 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidy2().
|
protectedinherited |
Shape function second derivatives in the y-z direction.
Definition at line 606 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidydz().
|
protectedinherited |
Shape function second derivatives in the z direction.
Definition at line 611 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidz2().
|
protectedinherited |
Shape function second derivatives in the zeta direction.
Definition at line 581 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidzeta2().
|
protectedinherited |
The dimensionality of the object
Definition at line 531 of file fe_abstract.h.
Referenced by libMesh::FEAbstract::build(), and libMesh::FEAbstract::get_dim().
|
protected |
|
protectedinherited |
Shape function divergence values. Only defined for vector types.
Definition at line 513 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_div_phi().
|
protected |
|
protectedinherited |
Used for certain infinite element families: the first derivatives of the phase term in global coordinates, over all quadrature points.
Definition at line 629 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphase().
|
protected |
|
protected |
|
protected |
|
protectedinherited |
Shape function derivative values.
Definition at line 503 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphi().
|
protectedinherited |
Shape function derivatives in the eta direction.
Definition at line 523 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphideta().
|
protectedinherited |
Shape function derivatives in the x direction.
Definition at line 533 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidx().
|
protectedinherited |
Shape function derivatives in the xi direction.
Definition at line 518 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidxi().
|
protectedinherited |
Shape function derivatives in the y direction.
Definition at line 538 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidy().
|
protectedinherited |
Shape function derivatives in the z direction.
Definition at line 543 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidz().
|
protectedinherited |
Shape function derivatives in the zeta direction.
Definition at line 528 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidzeta().
|
protected |
|
protected |
|
protectedinherited |
Used for certain infinite element families: the global derivative of the additional radial weight , over all quadrature points.
Definition at line 636 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_Sobolev_dweight().
|
protected |
|
protectedinherited |
The element type the current data structures are set up for.
Definition at line 581 of file fe_abstract.h.
Referenced by libMesh::FESubdivision::attach_quadrature_rule(), and libMesh::FEAbstract::get_type().
|
protectedinherited |
The finite element type for this object.
Definition at line 575 of file fe_abstract.h.
Referenced by libMesh::FEAbstract::compute_node_constraints(), libMesh::FEAbstract::compute_periodic_node_constraints(), libMesh::FEAbstract::get_family(), libMesh::FEAbstract::get_fe_type(), libMesh::FEAbstract::get_order(), libMesh::InfFE< Dim, T_radial, T_map >::InfFE(), libMesh::FESubdivision::init_shape_functions(), and libMesh::FEAbstract::set_fe_order().
|
protected |
|
protectedinherited |
Shape function values.
Definition at line 498 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_phi().
|
protectedinherited |
A pointer to the quadrature rule employed
Definition at line 592 of file fe_abstract.h.
Referenced by libMesh::FESubdivision::attach_quadrature_rule().
|
protected |
|
protected |
The quadrature rule for the base element associated with the current infinite element
Definition at line 758 of file inf_fe.h.
Referenced by libMesh::InfFE< Dim, T_radial, T_map >::n_quadrature_points().
|
protectedinherited |
A flag indicating if current data structures correspond to quadrature rule points
Definition at line 598 of file fe_abstract.h.
|
protected |
|
protectedinherited |
Used for certain infinite element families: the additional radial weight in local coordinates, over all quadrature points.
Definition at line 643 of file fe_base.h.
Referenced by libMesh::FEGenericBase< FEOutputType< T >::type >::get_Sobolev_weight().