libMesh
|
This class provides all data required for a physics package (e.g. More...
#include <fem_context.h>
Classes | |
struct | FENeeded |
Helper nested class for C++03-compatible "template typedef". More... | |
Public Types | |
enum | AlgebraicType { NONE = 0, DOFS_ONLY, CURRENT, OLD, OLD_DOFS_ONLY } |
Enum describing what data to use when initializing algebraic structures on each element. More... | |
typedef const DenseSubVector< Number > &(DiffContext::* | diff_subsolution_getter) (unsigned int) const |
Helper typedef to simplify refactoring. More... | |
typedef std::map< const NumericVector< Number > *, std::pair< DenseVector< Number >, std::vector< DenseSubVector< Number > > > >::iterator | localized_vectors_iterator |
Typedef for the localized_vectors iterator. More... | |
Public Member Functions | |
FEMContext (const System &sys, const std::vector< unsigned int > *active_vars=nullptr, bool allocate_local_matrices=true) | |
Constructor. More... | |
FEMContext (const System &sys, int extra_quadrature_order, const std::vector< unsigned int > *active_vars=nullptr, bool allocate_local_matrices=true) | |
Constructor. More... | |
virtual | ~FEMContext () |
Destructor. More... | |
void | use_default_quadrature_rules (int extra_quadrature_order=0) |
Use quadrature rules designed to over-integrate a mass matrix, plus extra_quadrature_order . More... | |
void | use_unweighted_quadrature_rules (int extra_quadrature_order=0) |
Use quadrature rules designed to exactly integrate unweighted undistorted basis functions, plus extra_quadrature_order . More... | |
bool | has_side_boundary_id (boundary_id_type id) const |
Reports if the boundary id is found on the current side. More... | |
void | side_boundary_ids (std::vector< boundary_id_type > &vec_to_fill) const |
As above, but fills in the std::set provided by the user. More... | |
Number | interior_value (unsigned int var, unsigned int qp) const |
Number | side_value (unsigned int var, unsigned int qp) const |
Number | point_value (unsigned int var, const Point &p) const |
Gradient | interior_gradient (unsigned int var, unsigned int qp) const |
Gradient | side_gradient (unsigned int var, unsigned int qp) const |
Gradient | point_gradient (unsigned int var, const Point &p) const |
Tensor | interior_hessian (unsigned int var, unsigned int qp) const |
Tensor | side_hessian (unsigned int var, unsigned int qp) const |
Tensor | point_hessian (unsigned int var, const Point &p) const |
Number | fixed_interior_value (unsigned int var, unsigned int qp) const |
Number | fixed_side_value (unsigned int var, unsigned int qp) const |
Number | fixed_point_value (unsigned int var, const Point &p) const |
Gradient | fixed_interior_gradient (unsigned int var, unsigned int qp) const |
Gradient | fixed_side_gradient (unsigned int var, unsigned int qp) const |
Gradient | fixed_point_gradient (unsigned int var, const Point &p) const |
Tensor | fixed_interior_hessian (unsigned int var, unsigned int qp) const |
Tensor | fixed_side_hessian (unsigned int var, unsigned int qp) const |
Tensor | fixed_point_hessian (unsigned int var, const Point &p) const |
template<typename OutputShape > | |
void | get_element_fe (unsigned int var, FEGenericBase< OutputShape > *&fe) const |
Accessor for interior finite element object for variable var for the largest dimension in the mesh. More... | |
FEBase * | get_element_fe (unsigned int var) const |
Accessor for interior finite element object for scalar-valued variable var for the largest dimension in the mesh. More... | |
template<typename OutputShape > | |
void | get_element_fe (unsigned int var, FEGenericBase< OutputShape > *&fe, unsigned short dim) const |
Accessor for interior finite element object for variable var for dimension dim. More... | |
void | get_element_fe (unsigned int var, FEAbstract *&fe, unsigned short dim) const |
Accessor for interior finite element object for variable var for dimension dim. More... | |
FEBase * | get_element_fe (unsigned int var, unsigned short dim) const |
Accessor for interior finite element object for scalar-valued variable var for dimension dim. More... | |
template<typename OutputShape > | |
void | get_side_fe (unsigned int var, FEGenericBase< OutputShape > *&fe) const |
Accessor for edge/face (2D/3D) finite element object for variable var for the largest dimension in the mesh. More... | |
FEBase * | get_side_fe (unsigned int var) const |
Accessor for side finite element object for scalar-valued variable var for the largest dimension in the mesh. More... | |
template<typename OutputShape > | |
void | get_side_fe (unsigned int var, FEGenericBase< OutputShape > *&fe, unsigned short dim) const |
Accessor for edge/face (2D/3D) finite element object for variable var for dimension dim. More... | |
void | get_side_fe (unsigned int var, FEAbstract *&fe, unsigned short dim) const |
Accessor for edge/face (2D/3D) finite element object for variable var for dimension dim. More... | |
FEBase * | get_side_fe (unsigned int var, unsigned short dim) const |
Accessor for side finite element object for scalar-valued variable var for dimension dim. More... | |
template<typename OutputShape > | |
void | get_edge_fe (unsigned int var, FEGenericBase< OutputShape > *&fe) const |
Accessor for edge (3D only!) finite element object for variable var. More... | |
void | get_edge_fe (unsigned int var, FEAbstract *&fe) const |
FEBase * | get_edge_fe (unsigned int var) const |
Accessor for edge (3D only!) finite element object for scalar-valued variable var. More... | |
template<typename OutputType > | |
void | interior_value (unsigned int var, unsigned int qp, OutputType &u) const |
template<typename OutputType > | |
void | interior_values (unsigned int var, const NumericVector< Number > &_system_vector, std::vector< OutputType > &interior_values_vector) const |
Fills a vector of values of the _system_vector at the all the quadrature points in the current element interior. More... | |
template<typename OutputType > | |
void | side_value (unsigned int var, unsigned int qp, OutputType &u) const |
template<typename OutputType > | |
void | side_values (unsigned int var, const NumericVector< Number > &_system_vector, std::vector< OutputType > &side_values_vector) const |
Fills a vector of values of the _system_vector at the all the quadrature points on the current element side. More... | |
template<typename OutputType > | |
void | point_value (unsigned int var, const Point &p, OutputType &u, const Real tolerance=TOLERANCE) const |
template<typename OutputType > | |
void | interior_gradient (unsigned int var, unsigned int qp, OutputType &du) const |
template<typename OutputType > | |
void | interior_gradients (unsigned int var, const NumericVector< Number > &_system_vector, std::vector< OutputType > &interior_gradients_vector) const |
Fills a vector with the gradient of the solution variable var at all the quadrature points in the current element interior. More... | |
template<typename OutputType > | |
void | side_gradient (unsigned int var, unsigned int qp, OutputType &du) const |
template<typename OutputType > | |
void | side_gradients (unsigned int var, const NumericVector< Number > &_system_vector, std::vector< OutputType > &side_gradients_vector) const |
Fills a vector with the gradient of the solution variable var at all the quadrature points on the current element side. More... | |
template<typename OutputType > | |
void | point_gradient (unsigned int var, const Point &p, OutputType &grad_u, const Real tolerance=TOLERANCE) const |
template<typename OutputType > | |
void | interior_hessian (unsigned int var, unsigned int qp, OutputType &d2u) const |
template<typename OutputType > | |
void | interior_hessians (unsigned int var, const NumericVector< Number > &_system_vector, std::vector< OutputType > &d2u_vals) const |
Fills a vector of hessians of the _system_vector at the all the quadrature points in the current element interior. More... | |
template<typename OutputType > | |
void | side_hessian (unsigned int var, unsigned int qp, OutputType &d2u) const |
template<typename OutputType > | |
void | side_hessians (unsigned int var, const NumericVector< Number > &_system_vector, std::vector< OutputType > &d2u_vals) const |
Fills a vector of hessians of the _system_vector at the all the quadrature points on the current element side. More... | |
template<typename OutputType > | |
void | point_hessian (unsigned int var, const Point &p, OutputType &hess_u, const Real tolerance=TOLERANCE) const |
template<typename OutputType > | |
void | interior_rate (unsigned int var, unsigned int qp, OutputType &u) const |
template<typename OutputType > | |
void | interior_rate_gradient (unsigned int var, unsigned int qp, OutputType &u) const |
template<typename OutputType > | |
void | side_rate (unsigned int var, unsigned int qp, OutputType &u) const |
template<typename OutputType > | |
void | point_rate (unsigned int var, const Point &p, OutputType &u) const |
template<typename OutputType > | |
void | interior_accel (unsigned int var, unsigned int qp, OutputType &u) const |
template<typename OutputType > | |
void | side_accel (unsigned int var, unsigned int qp, OutputType &u) const |
template<typename OutputType > | |
void | point_accel (unsigned int var, const Point &p, OutputType &u) const |
template<typename OutputType > | |
void | fixed_interior_value (unsigned int var, unsigned int qp, OutputType &u) const |
template<typename OutputType > | |
void | fixed_side_value (unsigned int var, unsigned int qp, OutputType &u) const |
template<typename OutputType > | |
void | fixed_point_value (unsigned int var, const Point &p, OutputType &u, const Real tolerance=TOLERANCE) const |
template<typename OutputType > | |
void | fixed_interior_gradient (unsigned int var, unsigned int qp, OutputType &grad_u) const |
template<typename OutputType > | |
void | fixed_side_gradient (unsigned int var, unsigned int qp, OutputType &grad_u) const |
template<typename OutputType > | |
void | fixed_point_gradient (unsigned int var, const Point &p, OutputType &grad_u, const Real tolerance=TOLERANCE) const |
template<typename OutputType > | |
void | fixed_interior_hessian (unsigned int var, unsigned int qp, OutputType &hess_u) const |
template<typename OutputType > | |
void | fixed_side_hessian (unsigned int var, unsigned int qp, OutputType &hess_u) const |
template<typename OutputType > | |
void | fixed_point_hessian (unsigned int var, const Point &p, OutputType &hess_u, const Real tolerance=TOLERANCE) const |
template<typename OutputType > | |
void | interior_curl (unsigned int var, unsigned int qp, OutputType &curl_u) const |
template<typename OutputType > | |
void | point_curl (unsigned int var, const Point &p, OutputType &curl_u, const Real tolerance=TOLERANCE) const |
template<typename OutputType > | |
void | interior_div (unsigned int var, unsigned int qp, OutputType &div_u) const |
virtual void | elem_reinit (Real theta) override |
Resets the current time in the context. More... | |
virtual void | elem_side_reinit (Real theta) override |
Resets the current time in the context. More... | |
virtual void | elem_edge_reinit (Real theta) override |
Resets the current time in the context. More... | |
virtual void | nonlocal_reinit (Real theta) override |
Gives derived classes the opportunity to reinitialize data needed for nonlocal calculations at a new point within a timestep. More... | |
virtual void | pre_fe_reinit (const System &, const Elem *e) |
Reinitializes local data vectors/matrices on the current geometric element. More... | |
virtual void | elem_fe_reinit (const std::vector< Point > *const pts=nullptr) |
Reinitializes interior FE objects on the current geometric element. More... | |
virtual void | side_fe_reinit () |
Reinitializes side FE objects on the current geometric element. More... | |
virtual void | edge_fe_reinit () |
Reinitializes edge FE objects on the current geometric element. More... | |
const QBase & | get_element_qrule () const |
Accessor for element interior quadrature rule for the dimension of the current _elem. More... | |
const QBase & | get_side_qrule () const |
Accessor for element side quadrature rule for the dimension of the current _elem. More... | |
const QBase & | get_element_qrule (unsigned short dim) const |
Accessor for element interior quadrature rule. More... | |
const QBase & | get_side_qrule (unsigned short dim) const |
Accessor for element side quadrature rule. More... | |
const QBase & | get_edge_qrule () const |
Accessor for element edge quadrature rule. More... | |
virtual void | set_mesh_system (System *sys) |
Tells the FEMContext that system sys contains the isoparametric Lagrangian variables which correspond to the coordinates of mesh nodes, in problems where the mesh itself is expected to move in time. More... | |
const System * | get_mesh_system () const |
Accessor for moving mesh System. More... | |
System * | get_mesh_system () |
Accessor for moving mesh System. More... | |
unsigned int | get_mesh_x_var () const |
Accessor for x-variable of moving mesh System. More... | |
void | set_mesh_x_var (unsigned int x_var) |
Accessor for x-variable of moving mesh System. More... | |
unsigned int | get_mesh_y_var () const |
Accessor for y-variable of moving mesh System. More... | |
void | set_mesh_y_var (unsigned int y_var) |
Accessor for y-variable of moving mesh System. More... | |
unsigned int | get_mesh_z_var () const |
Accessor for z-variable of moving mesh System. More... | |
void | set_mesh_z_var (unsigned int z_var) |
Accessor for z-variable of moving mesh System. More... | |
bool | has_elem () const |
Test for current Elem object. More... | |
const Elem & | get_elem () const |
Accessor for current Elem object. More... | |
Elem & | get_elem () |
Accessor for current Elem object. More... | |
unsigned char | get_side () const |
Accessor for current side of Elem object. More... | |
unsigned char | get_edge () const |
Accessor for current edge of Elem object. More... | |
unsigned char | get_dim () const |
Accessor for cached mesh dimension. More... | |
unsigned char | get_elem_dim () const |
const std::set< unsigned char > & | elem_dimensions () const |
void | elem_position_set (Real theta) |
Uses the coordinate data specified by mesh_*_position configuration to set the geometry of elem to the value it would take after a fraction theta of a timestep. More... | |
void | elem_position_get () |
Uses the geometry of elem to set the coordinate data specified by mesh_*_position configuration. More... | |
void | set_algebraic_type (const AlgebraicType atype) |
Setting which determines whether to initialize algebraic structures (elem_*) on each element and set their values from current_local_solution. More... | |
AlgebraicType | algebraic_type () const |
void | set_custom_solution (const NumericVector< Number > *custom_sol) |
Set a NumericVector to be used in place of current_local_solution for calculating elem_solution. More... | |
void | set_jacobian_tolerance (Real tol) |
Calls set_jacobian_tolerance() on all the FE objects controlled by this class. More... | |
FEType | find_hardest_fe_type () |
Helper function for creating quadrature rules. More... | |
void | attach_quadrature_rules () |
Helper function for attaching quadrature rules. More... | |
const std::vector< unsigned int > * | active_vars () const |
Return a pointer to the vector of active variables being computed for, or a null pointer if all variables in the system are active. More... | |
template<typename OutputShape > | |
FEGenericBase< OutputShape > * | build_new_fe (const FEGenericBase< OutputShape > *fe, const Point &p, const Real tolerance=TOLERANCE, const int get_derivative_level=-1) const |
Helper function to reduce some code duplication in the *_point_* methods. More... | |
template<> | |
FEGenericBase< Real > * | cached_fe (const unsigned int elem_dim, const FEType fe_type, const int get_derivative_level) const |
template<> | |
FEGenericBase< RealGradient > * | cached_fe (const unsigned int elem_dim, const FEType fe_type, const int get_derivative_level) const |
unsigned int | n_vars () const |
Number of variables in solution. More... | |
const System & | get_system () const |
Accessor for associated system. More... | |
const DenseVector< Number > & | get_elem_solution () const |
Accessor for element solution. More... | |
DenseVector< Number > & | get_elem_solution () |
Non-const accessor for element solution. More... | |
const DenseSubVector< Number > & | get_elem_solution (unsigned int var) const |
Accessor for element solution of a particular variable corresponding to the variable index argument. More... | |
DenseSubVector< Number > & | get_elem_solution (unsigned int var) |
Accessor for element solution of a particular variable corresponding to the variable index argument. More... | |
const DenseVector< Number > & | get_elem_solution_rate () const |
Accessor for element solution rate of change w.r.t. More... | |
DenseVector< Number > & | get_elem_solution_rate () |
Non-const accessor for element solution rate of change w.r.t. More... | |
const DenseSubVector< Number > & | get_elem_solution_rate (unsigned int var) const |
Accessor for element solution rate for a particular variable corresponding to the variable index argument. More... | |
DenseSubVector< Number > & | get_elem_solution_rate (unsigned int var) |
Accessor for element solution rate for a particular variable corresponding to the variable index argument. More... | |
const DenseVector< Number > & | get_elem_solution_accel () const |
Accessor for element solution accel of change w.r.t. More... | |
DenseVector< Number > & | get_elem_solution_accel () |
Non-const accessor for element solution accel of change w.r.t. More... | |
const DenseSubVector< Number > & | get_elem_solution_accel (unsigned int var) const |
Accessor for element solution accel for a particular variable corresponding to the variable index argument. More... | |
DenseSubVector< Number > & | get_elem_solution_accel (unsigned int var) |
Accessor for element solution accel for a particular variable corresponding to the variable index argument. More... | |
const DenseVector< Number > & | get_elem_fixed_solution () const |
Accessor for element fixed solution. More... | |
DenseVector< Number > & | get_elem_fixed_solution () |
Non-const accessor for element fixed solution. More... | |
const DenseSubVector< Number > & | get_elem_fixed_solution (unsigned int var) const |
Accessor for element fixed solution of a particular variable corresponding to the variable index argument. More... | |
DenseSubVector< Number > & | get_elem_fixed_solution (unsigned int var) |
Accessor for element fixed solution of a particular variable corresponding to the variable index argument. More... | |
const DenseVector< Number > & | get_elem_residual () const |
Const accessor for element residual. More... | |
DenseVector< Number > & | get_elem_residual () |
Non-const accessor for element residual. More... | |
const DenseSubVector< Number > & | get_elem_residual (unsigned int var) const |
Const accessor for element residual of a particular variable corresponding to the variable index argument. More... | |
DenseSubVector< Number > & | get_elem_residual (unsigned int var) |
Non-const accessor for element residual of a particular variable corresponding to the variable index argument. More... | |
const DenseMatrix< Number > & | get_elem_jacobian () const |
Const accessor for element Jacobian. More... | |
DenseMatrix< Number > & | get_elem_jacobian () |
Non-const accessor for element Jacobian. More... | |
const DenseSubMatrix< Number > & | get_elem_jacobian (unsigned int var1, unsigned int var2) const |
Const accessor for element Jacobian of particular variables corresponding to the variable index arguments. More... | |
DenseSubMatrix< Number > & | get_elem_jacobian (unsigned int var1, unsigned int var2) |
Non-const accessor for element Jacobian of particular variables corresponding to the variable index arguments. More... | |
const std::vector< Number > & | get_qois () const |
Const accessor for QoI vector. More... | |
std::vector< Number > & | get_qois () |
Non-const accessor for QoI vector. More... | |
const std::vector< DenseVector< Number > > & | get_qoi_derivatives () const |
Const accessor for QoI derivatives. More... | |
std::vector< DenseVector< Number > > & | get_qoi_derivatives () |
Non-const accessor for QoI derivatives. More... | |
const DenseSubVector< Number > & | get_qoi_derivatives (std::size_t qoi, unsigned int var) const |
Const accessor for QoI derivative of a particular qoi and variable corresponding to the index arguments. More... | |
DenseSubVector< Number > & | get_qoi_derivatives (std::size_t qoi, unsigned int var) |
Non-const accessor for QoI derivative of a particular qoi and variable corresponding to the index arguments. More... | |
const std::vector< dof_id_type > & | get_dof_indices () const |
Accessor for element dof indices. More... | |
std::vector< dof_id_type > & | get_dof_indices () |
Non-const accessor for element dof indices. More... | |
const std::vector< dof_id_type > & | get_dof_indices (unsigned int var) const |
Accessor for element dof indices of a particular variable corresponding to the index argument. More... | |
std::vector< dof_id_type > & | get_dof_indices (unsigned int var) |
Accessor for element dof indices of a particular variable corresponding to the index argument. More... | |
unsigned int | n_dof_indices () const |
Total number of dof indices on the element. More... | |
unsigned int | n_dof_indices (unsigned int var) const |
Total number of dof indices of the particular variable corresponding to the index argument. More... | |
Real | get_system_time () const |
Accessor for the time variable stored in the system class. More... | |
Real | get_time () const |
Accessor for the time for which the current nonlinear_solution is defined. More... | |
void | set_time (Real time_in) |
Set the time for which the current nonlinear_solution is defined. More... | |
Real | get_elem_solution_derivative () const |
The derivative of the current elem_solution w.r.t. More... | |
Real | get_elem_solution_rate_derivative () const |
The derivative of the current elem_solution_rate w.r.t. More... | |
Real | get_elem_solution_accel_derivative () const |
The derivative of the current elem_solution_accel w.r.t. More... | |
Real | get_fixed_solution_derivative () const |
The derivative of the current fixed_elem_solution w.r.t. More... | |
bool | is_adjoint () const |
Accessor for querying whether we need to do a primal or adjoint solve. More... | |
bool & | is_adjoint () |
Accessor for setting whether we need to do a primal or adjoint solve. More... | |
void | set_deltat_pointer (Real *dt) |
Points the _deltat member of this class at a timestep value stored in the creating System, for example DiffSystem::deltat. More... | |
Real | get_deltat_value () |
void | add_localized_vector (NumericVector< Number > &localized_vector, const System &sys) |
Adds a vector to the map of localized vectors. More... | |
DenseVector< Number > & | get_localized_vector (const NumericVector< Number > &localized_vector) |
Return a reference to DenseVector localization of localized_vector contained in the _localized_vectors map. More... | |
const DenseVector< Number > & | get_localized_vector (const NumericVector< Number > &localized_vector) const |
const accessible version of get_localized_vector function More... | |
DenseSubVector< Number > & | get_localized_subvector (const NumericVector< Number > &localized_vector, unsigned int var) |
Return a reference to DenseSubVector localization of localized_vector at variable var contained in the _localized_vectors map. More... | |
const DenseSubVector< Number > & | get_localized_subvector (const NumericVector< Number > &localized_vector, unsigned int var) const |
const accessible version of get_localized_subvector function More... | |
Public Attributes | |
unsigned char | side |
Current side for side_* to examine. More... | |
unsigned char | edge |
Current edge for edge_* to examine. More... | |
Real | time |
For time-dependent problems, this is the time t for which the current nonlinear_solution is defined. More... | |
const Real | system_time |
This is the time stored in the System class at the time this context was created, i.e. More... | |
Real | elem_solution_derivative |
The derivative of elem_solution with respect to the current nonlinear solution. More... | |
Real | elem_solution_rate_derivative |
The derivative of elem_solution_rate with respect to the current nonlinear solution, for use by systems with non default mass_residual terms. More... | |
Real | elem_solution_accel_derivative |
The derivative of elem_solution_accel with respect to the current nonlinear solution, for use by systems with non default mass_residual terms. More... | |
Real | fixed_solution_derivative |
The derivative of elem_fixed_solution with respect to the nonlinear solution, for use by systems constructing jacobians with elem_fixed_solution based methods. More... | |
Protected Member Functions | |
template<typename OutputShape > | |
FEGenericBase< OutputShape > * | cached_fe (const unsigned int elem_dim, const FEType fe_type, const int get_derivative_level) const |
void | set_elem (const Elem *e) |
Helper function to promote accessor usage. More... | |
template<typename OutputType , typename FENeeded< OutputType >::value_getter fe_getter, diff_subsolution_getter subsolution_getter> | |
void | some_value (unsigned int var, unsigned int qp, OutputType &u) const |
Helper function to reduce some code duplication in the *interior_value methods. More... | |
template<typename OutputType , typename FENeeded< OutputType >::grad_getter fe_getter, diff_subsolution_getter subsolution_getter> | |
void | some_gradient (unsigned int var, unsigned int qp, OutputType &u) const |
Helper function to reduce some code duplication in the *interior_gradient methods. More... | |
template<typename OutputType , typename FENeeded< OutputType >::hess_getter fe_getter, diff_subsolution_getter subsolution_getter> | |
void | some_hessian (unsigned int var, unsigned int qp, OutputType &u) const |
Helper function to reduce some code duplication in the *interior_hessian methods. More... | |
Protected Attributes | |
std::unique_ptr< const std::vector< unsigned int > > | _active_vars |
Variables on which to enable calculations, or nullptr if all variables in the System are to be enabled. More... | |
System * | _mesh_sys |
System from which to acquire moving mesh information. More... | |
unsigned int | _mesh_x_var |
Variables from which to acquire moving mesh information. More... | |
unsigned int | _mesh_y_var |
unsigned int | _mesh_z_var |
AlgebraicType | _atype |
Keep track of what type of algebra reinitialization is to be done. More... | |
const NumericVector< Number > * | _custom_solution |
Data with which to do algebra reinitialization. More... | |
std::unique_ptr< FEGenericBase< Real > > | _real_fe |
std::unique_ptr< FEGenericBase< RealGradient > > | _real_grad_fe |
int | _real_fe_derivative_level |
int | _real_grad_fe_derivative_level |
bool | _real_fe_is_inf |
bool | _real_grad_fe_is_inf |
std::vector< std::map< FEType, std::unique_ptr< FEAbstract > > > | _element_fe |
Finite element objects for each variable's interior, sides and edges. More... | |
std::vector< std::map< FEType, std::unique_ptr< FEAbstract > > > | _side_fe |
std::map< FEType, std::unique_ptr< FEAbstract > > | _edge_fe |
std::vector< std::vector< FEAbstract * > > | _element_fe_var |
Pointers to the same finite element objects, but indexed by variable number. More... | |
std::vector< std::vector< FEAbstract * > > | _side_fe_var |
std::vector< FEAbstract * > | _edge_fe_var |
const BoundaryInfo & | _boundary_info |
Saved reference to BoundaryInfo on the mesh for this System. More... | |
const Elem * | _elem |
Current element for element_* to examine. More... | |
unsigned char | _dim |
Cached dimension of largest dimension element in this mesh. More... | |
unsigned char | _elem_dim |
Cached dimension of this->_elem. More... | |
std::set< unsigned char > | _elem_dims |
Cached dimensions of elements in the mesh, plus dimension 0 if SCALAR variables are in use. More... | |
std::vector< std::unique_ptr< QBase > > | _element_qrule |
Quadrature rule for element interior. More... | |
std::vector< std::unique_ptr< QBase > > | _side_qrule |
Quadrature rules for element sides The FEM context will try to find a quadrature rule that correctly integrates all variables. More... | |
std::unique_ptr< QBase > | _edge_qrule |
Quadrature rules for element edges. More... | |
int | _extra_quadrature_order |
The extra quadrature order for this context. More... | |
std::map< const NumericVector< Number > *, std::pair< DenseVector< Number >, std::vector< DenseSubVector< Number > > > > | _localized_vectors |
Contains pointers to vectors the user has asked to be localized, keyed with pairs of element localized versions of that vector and per variable views. More... | |
const bool | _have_local_matrices |
Whether we have local matrices allocated/initialized. More... | |
DenseVector< Number > | _elem_solution |
Element by element components of nonlinear_solution as adjusted by a time_solver. More... | |
std::vector< DenseSubVector< Number > > | _elem_subsolutions |
DenseVector< Number > | _elem_solution_rate |
Element by element components of du/dt as adjusted by a time_solver. More... | |
std::vector< DenseSubVector< Number > > | _elem_subsolution_rates |
DenseVector< Number > | _elem_solution_accel |
Element by element components of du/dt as adjusted by a time_solver. More... | |
std::vector< DenseSubVector< Number > > | _elem_subsolution_accels |
DenseVector< Number > | _elem_fixed_solution |
Element by element components of nonlinear_solution at a fixed point in a timestep, for optional use by e.g. More... | |
std::vector< DenseSubVector< Number > > | _elem_fixed_subsolutions |
DenseVector< Number > | _elem_residual |
Element residual vector. More... | |
DenseMatrix< Number > | _elem_jacobian |
Element jacobian: derivatives of elem_residual with respect to elem_solution. More... | |
std::vector< Number > | _elem_qoi |
Element quantity of interest contributions. More... | |
std::vector< DenseVector< Number > > | _elem_qoi_derivative |
Element quantity of interest derivative contributions. More... | |
std::vector< std::vector< DenseSubVector< Number > > > | _elem_qoi_subderivatives |
std::vector< DenseSubVector< Number > > | _elem_subresiduals |
Element residual subvectors and (if _have_local_matrices ) Jacobian submatrices. More... | |
std::vector< std::vector< DenseSubMatrix< Number > > > | _elem_subjacobians |
std::vector< dof_id_type > | _dof_indices |
Global Degree of freedom index lists. More... | |
std::vector< std::vector< dof_id_type > > | _dof_indices_var |
Private Member Functions | |
void | init_internal_data (const System &sys) |
Helper function used in constructors to set up internal data. More... | |
void | _do_elem_position_set (Real theta) |
Uses the coordinate data specified by mesh_*_position configuration to set the geometry of elem to the value it would take after a fraction theta of a timestep. More... | |
void | _update_time_from_system (Real theta) |
Update the time in the context object for the given value of theta, based on the values of "time" and "deltat" stored in the system which created this context. More... | |
This class provides all data required for a physics package (e.g.
an FEMSystem subclass) to perform local element residual and jacobian integrations.
This class is part of the new DifferentiableSystem framework, which is still experimental. Users of this framework should beware of bugs and future API changes.
Definition at line 62 of file fem_context.h.
typedef const DenseSubVector<Number>&(DiffContext::* libMesh::FEMContext::diff_subsolution_getter) (unsigned int) const |
Helper typedef to simplify refactoring.
Definition at line 1103 of file fem_context.h.
|
inherited |
Typedef for the localized_vectors iterator.
Definition at line 540 of file diff_context.h.
Enum describing what data to use when initializing algebraic structures on each element.
Enumerator | |
---|---|
NONE | |
DOFS_ONLY | |
CURRENT | |
OLD | |
OLD_DOFS_ONLY |
Definition at line 971 of file fem_context.h.
|
explicit |
Constructor.
Allocates some but fills no data structures.
Optionally specify a limited number of variables to be "active" and thus calculated on. If active_vars
is null then calculations will be prepared for every variable in sys
.
Definition at line 39 of file fem_context.C.
References init_internal_data().
|
explicit |
Constructor.
Specify the extra quadrature order instead of getting it from sys
.
Optionally specify a limited number of variables to be "active" and thus calculated on. If active_vars
is null then calculations will be prepared for every variable in sys
.
Definition at line 48 of file fem_context.C.
References _active_vars, active_vars(), init_internal_data(), and libMesh::libmesh_assert().
|
virtual |
|
private |
Uses the coordinate data specified by mesh_*_position configuration to set the geometry of elem
to the value it would take after a fraction theta
of a timestep.
This does the work of elem_position_set, but isn't safe to call without _mesh_sys/etc. defined first.
Definition at line 1607 of file fem_context.C.
References _mesh_sys, dim, get_elem(), get_elem_dim(), libMesh::DiffContext::get_elem_solution(), get_element_fe(), get_mesh_x_var(), get_mesh_y_var(), get_mesh_z_var(), libMesh::invalid_uint, libMesh::libmesh_assert(), libMesh::libmesh_real(), libMesh::FEMap::map_fe_type(), n_nodes, libMesh::Elem::n_nodes(), and libMesh::n_threads().
Referenced by elem_position_set().
|
private |
Update the time in the context object for the given value of theta, based on the values of "time" and "deltat" stored in the system which created this context.
Definition at line 1923 of file fem_context.C.
References libMesh::DiffContext::get_deltat_value(), libMesh::DiffContext::get_system_time(), libMesh::Real, and libMesh::DiffContext::set_time().
Referenced by elem_edge_reinit(), elem_reinit(), elem_side_reinit(), and nonlocal_reinit().
|
inline |
Return a pointer to the vector of active variables being computed for, or a null pointer if all variables in the system are active.
Definition at line 1034 of file fem_context.h.
References _active_vars.
Referenced by FEMContext().
|
inherited |
Adds a vector to the map of localized vectors.
We can later evaluate interior_values, interior_gradients and side_values for these fields these vectors represent.
Definition at line 125 of file diff_context.C.
References libMesh::DiffContext::_localized_vectors, and libMesh::System::n_vars().
|
inline |
Definition at line 992 of file fem_context.h.
References _atype.
Referenced by build_new_fe(), and pre_fe_reinit().
void libMesh::FEMContext::attach_quadrature_rules | ( | ) |
Helper function for attaching quadrature rules.
Definition at line 127 of file fem_context.C.
References _active_vars, _edge_fe, _edge_qrule, _elem_dims, _element_fe, _element_qrule, _side_fe, _side_qrule, dim, libMesh::DiffContext::get_system(), libMesh::make_range(), libMesh::System::n_vars(), and libMesh::System::variable_type().
Referenced by use_default_quadrature_rules(), and use_unweighted_quadrature_rules().
template LIBMESH_EXPORT FEGenericBase< RealGradient > * libMesh::FEMContext::build_new_fe | ( | const FEGenericBase< OutputShape > * | fe, |
const Point & | p, | ||
const Real | tolerance = TOLERANCE , |
||
const int | get_derivative_level = -1 |
||
) | const |
Helper function to reduce some code duplication in the *_point_* methods.
get_derivative_level should be -1 to get_ everything, 0 to get_phi, 1 to get_dphi, 2 to get_d2phi, or 3 to get_curl_phi
Definition at line 2023 of file fem_context.C.
References libMesh::FEAbstract::add_p_level_in_reinit(), algebraic_type(), libMesh::Elem::dim(), libMesh::FEType::family, libMesh::FEGenericBase< OutputType >::get_curl_phi(), libMesh::FEGenericBase< OutputType >::get_d2phi(), libMesh::FEGenericBase< OutputType >::get_dphi(), get_elem(), libMesh::FEAbstract::get_fe_type(), libMesh::FEGenericBase< OutputType >::get_phi(), has_elem(), libMesh::FEMap::inverse_map(), libMesh::Elem::JUST_COARSENED, libMesh::Elem::JUST_REFINED, libMesh::libmesh_assert(), OLD, libMesh::FEType::order, libMesh::FEAbstract::reinit(), and libMesh::SCALAR.
Referenced by fixed_point_gradient(), fixed_point_hessian(), fixed_point_value(), point_curl(), point_gradient(), point_hessian(), and point_value().
|
protected |
FEGenericBase<Real>* libMesh::FEMContext::cached_fe | ( | const unsigned int | elem_dim, |
const FEType | fe_type, | ||
const int | get_derivative_level | ||
) | const |
Definition at line 1938 of file fem_context.C.
References _real_fe, _real_fe_derivative_level, _real_fe_is_inf, libMesh::FEGenericBase< OutputType >::build(), libMesh::FEGenericBase< OutputType >::build_InfFE(), get_elem(), has_elem(), and libMesh::Elem::infinite().
FEGenericBase<RealGradient>* libMesh::FEMContext::cached_fe | ( | const unsigned int | elem_dim, |
const FEType | fe_type, | ||
const int | get_derivative_level | ||
) | const |
Definition at line 1980 of file fem_context.C.
References _real_grad_fe, _real_grad_fe_derivative_level, _real_grad_fe_is_inf, libMesh::FEGenericBase< OutputType >::build(), libMesh::FEGenericBase< OutputType >::build_InfFE(), get_elem(), has_elem(), and libMesh::Elem::infinite().
|
virtual |
Reinitializes edge FE objects on the current geometric element.
Definition at line 1514 of file fem_context.C.
References _edge_fe, get_edge(), get_elem(), and get_elem_dim().
Referenced by elem_edge_reinit().
|
inline |
Definition at line 951 of file fem_context.h.
References _elem_dims.
Referenced by libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), ElasticitySystem::init_context(), libMesh::LaplacianErrorEstimator::init_context(), libMesh::VariationalSmootherSystem::init_context(), HilbertSystem::init_context(), libMesh::DiscontinuityMeasure::init_context(), libMesh::WrappedFunctor< Output >::init_context(), HeatSystem::init_context(), libMesh::KellyErrorEstimator::init_context(), libMesh::FEMSystem::init_context(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), and libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides().
|
overridevirtual |
Resets the current time in the context.
Additionally, reinitialize Elem and FE objects if there's a moving mesh present in the system such that the mesh is deformed to its position at \( t_{\theta} \).
Reimplemented from libMesh::DiffContext.
Definition at line 1452 of file fem_context.C.
References _mesh_sys, _update_time_from_system(), edge_fe_reinit(), and elem_position_set().
|
virtual |
Reinitializes interior FE objects on the current geometric element.
Definition at line 1477 of file fem_context.C.
References _element_fe, dim, get_elem(), get_elem_dim(), has_elem(), and libMesh::libmesh_assert().
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), assembly_with_dg_fem_context(), libMesh::VariationalSmootherSystem::compute_element_reference_volume(), elem_reinit(), HilbertSystem::element_time_derivative(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::FEMSystem::mesh_position_set(), nonlocal_reinit(), Integrate::operator()(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), and OverlappingCouplingGhostingTest::run_sparsity_pattern_test().
void libMesh::FEMContext::elem_position_get | ( | ) |
Uses the geometry of elem
to set the coordinate data specified by mesh_*_position configuration.
Definition at line 1526 of file fem_context.C.
References _mesh_sys, libMesh::Elem::default_order(), dim, get_elem(), get_elem_dim(), libMesh::DiffContext::get_elem_solution(), get_element_fe(), get_mesh_x_var(), get_mesh_y_var(), get_mesh_z_var(), libMesh::invalid_uint, libMesh::libmesh_assert(), libMesh::FEMap::map_fe_type(), n_nodes, libMesh::Elem::n_nodes(), libMesh::n_threads(), and libMesh::Elem::point().
Referenced by libMesh::FEMSystem::mesh_position_get().
|
inline |
Uses the coordinate data specified by mesh_*_position configuration to set the geometry of elem
to the value it would take after a fraction theta
of a timestep.
Definition at line 1270 of file fem_context.h.
References _do_elem_position_set(), and _mesh_sys.
Referenced by elem_edge_reinit(), elem_reinit(), elem_side_reinit(), and libMesh::FEMSystem::mesh_position_set().
|
overridevirtual |
Resets the current time in the context.
Additionally, reinitialize Elem and FE objects if there's a moving mesh present in the system such that the mesh is deformed to its position at \( t_{\theta} \).
Reimplemented from libMesh::DiffContext.
Definition at line 1413 of file fem_context.C.
References _mesh_sys, _update_time_from_system(), elem_fe_reinit(), elem_position_set(), and libMesh::n_threads().
|
overridevirtual |
Resets the current time in the context.
Additionally, reinitialize Elem and FE objects if there's a moving mesh present in the system such that the mesh is deformed to its position at \( t_{\theta} \).
Reimplemented from libMesh::DiffContext.
Definition at line 1437 of file fem_context.C.
References _mesh_sys, _update_time_from_system(), elem_position_set(), and side_fe_reinit().
FEType libMesh::FEMContext::find_hardest_fe_type | ( | ) |
Helper function for creating quadrature rules.
Definition at line 86 of file fem_context.C.
References _active_vars, libMesh::FEType::family, libMesh::DiffContext::get_system(), libMesh::make_range(), libMesh::System::n_vars(), libMesh::FEType::order, libMesh::SCALAR, and libMesh::System::variable_type().
Referenced by use_default_quadrature_rules(), and use_unweighted_quadrature_rules().
var
at the quadrature point qp
on the current element interior.Definition at line 1082 of file fem_context.C.
void libMesh::FEMContext::fixed_interior_gradient | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | grad_u | ||
) | const |
var
at the quadrature point qp
on the current element interior.Definition at line 1093 of file fem_context.C.
References libMesh::DiffContext::get_elem_fixed_solution(), get_element_fe(), and some_gradient().
var
at the quadrature point qp
on the current element interior.Definition at line 1109 of file fem_context.C.
void libMesh::FEMContext::fixed_interior_hessian | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | hess_u | ||
) | const |
var
at the quadrature point qp
on the current element interior.Definition at line 1120 of file fem_context.C.
References libMesh::DiffContext::get_elem_fixed_solution(), get_element_fe(), and some_hessian().
var
at the quadrature point qp
on the current element interior.Definition at line 1059 of file fem_context.C.
void libMesh::FEMContext::fixed_interior_value | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | u | ||
) | const |
var
at the quadrature point qp
on the current element interior.Definition at line 1071 of file fem_context.C.
References libMesh::DiffContext::get_elem_fixed_solution(), get_element_fe(), and some_value().
var
at the physical point p
on the current element.Definition at line 1255 of file fem_context.C.
void libMesh::FEMContext::fixed_point_gradient | ( | unsigned int | var, |
const Point & | p, | ||
OutputType & | grad_u, | ||
const Real | tolerance = TOLERANCE |
||
) | const |
var
at the physical point p
on the current element.Allows evaluation of points within a relative tolerance outside the element.
Definition at line 1267 of file fem_context.C.
References libMesh::DiffContext::_elem_fixed_subsolutions, build_new_fe(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), and libMesh::DiffContext::get_elem_fixed_solution().
var
at the physical point p
on the current element.Definition at line 1306 of file fem_context.C.
void libMesh::FEMContext::fixed_point_hessian | ( | unsigned int | var, |
const Point & | p, | ||
OutputType & | hess_u, | ||
const Real | tolerance = TOLERANCE |
||
) | const |
var
at the physical point p
on the current element.Allows evaluation of points within a relative tolerance outside the element.
Definition at line 1318 of file fem_context.C.
References libMesh::DiffContext::_elem_fixed_subsolutions, build_new_fe(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), and libMesh::DiffContext::get_elem_fixed_solution().
var
at the physical point p
on the current element.Definition at line 1209 of file fem_context.C.
void libMesh::FEMContext::fixed_point_value | ( | unsigned int | var, |
const Point & | p, | ||
OutputType & | u, | ||
const Real | tolerance = TOLERANCE |
||
) | const |
var
at the physical point p
on the current element.Allows evaluation of points within a relative tolerance outside the element.
Definition at line 1219 of file fem_context.C.
References libMesh::DiffContext::_elem_fixed_subsolutions, build_new_fe(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), and libMesh::DiffContext::get_elem_fixed_solution().
var
at the quadrature point qp
on the current element side.Definition at line 1159 of file fem_context.C.
void libMesh::FEMContext::fixed_side_gradient | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | grad_u | ||
) | const |
var
at the quadrature point qp
on the current element side.Definition at line 1170 of file fem_context.C.
References libMesh::DiffContext::get_elem_fixed_solution(), get_side_fe(), and some_gradient().
var
at the quadrature point qp
on the current element side.Definition at line 1184 of file fem_context.C.
void libMesh::FEMContext::fixed_side_hessian | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | hess_u | ||
) | const |
var
at the quadrature point qp
on the current element side.Definition at line 1194 of file fem_context.C.
References libMesh::DiffContext::get_elem_fixed_solution(), get_side_fe(), and some_hessian().
var
at the quadrature point qp
on the current element side.Definition at line 1135 of file fem_context.C.
void libMesh::FEMContext::fixed_side_value | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | u | ||
) | const |
var
at the quadrature point qp
on the current element side.Definition at line 1146 of file fem_context.C.
References libMesh::DiffContext::get_elem_fixed_solution(), get_side_fe(), and some_value().
|
inherited |
_deltat
member Definition at line 117 of file diff_context.C.
References libMesh::DiffContext::_deltat, and libMesh::libmesh_assert().
Referenced by _update_time_from_system().
|
inline |
Accessor for cached mesh dimension.
This is the largest dimension of the elements in the mesh. For the dimension of this->_elem, use get_elem_dim();
Definition at line 936 of file fem_context.h.
References _dim.
Referenced by libMesh::VariationalSmootherSystem::element_time_derivative(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), and SolidSystem::side_time_derivative().
|
inlineinherited |
Accessor for element dof indices.
Definition at line 363 of file diff_context.h.
References libMesh::DiffContext::_dof_indices.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), assembly_with_dg_fem_context(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyA2::boundary_assembly(), AssemblyF2::boundary_assembly(), A2::boundary_assembly(), A3::boundary_assembly(), F0::boundary_assembly(), Output0::boundary_assembly(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), FirstOrderScalarSystemBase::element_time_derivative(), SecondOrderScalarSystemFirstOrderTimeSolverBase::element_time_derivative(), fixed_point_gradient(), fixed_point_hessian(), fixed_point_value(), A0::interior_assembly(), B::interior_assembly(), M0::interior_assembly(), A1::interior_assembly(), AssemblyA0::interior_assembly(), AcousticsInnerProduct::interior_assembly(), AssemblyA1::interior_assembly(), A2::interior_assembly(), AssemblyA2::interior_assembly(), F0::interior_assembly(), OutputAssembly::interior_assembly(), EIM_IP_assembly::interior_assembly(), EIM_F::interior_assembly(), AssemblyEIM::interior_assembly(), InnerProductAssembly::interior_assembly(), AssemblyF0::interior_assembly(), AssemblyF1::interior_assembly(), Ex6InnerProduct::interior_assembly(), interior_curl(), interior_div(), interior_gradients(), interior_hessians(), interior_values(), libMesh::FEMPhysics::mass_residual(), FirstOrderScalarSystemBase::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual(), libMesh::FEMSystem::mesh_position_get(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), libMesh::FEMSystem::numerical_jacobian(), point_curl(), point_gradient(), point_hessian(), point_value(), pre_fe_reinit(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), side_gradient(), side_gradients(), side_hessians(), side_values(), some_gradient(), some_hessian(), and some_value().
|
inlineinherited |
Non-const accessor for element dof indices.
Definition at line 369 of file diff_context.h.
References libMesh::DiffContext::_dof_indices.
|
inlineinherited |
Accessor for element dof indices of a particular variable corresponding to the index argument.
Definition at line 376 of file diff_context.h.
References libMesh::DiffContext::_dof_indices_var.
|
inlineinherited |
Accessor for element dof indices of a particular variable corresponding to the index argument.
Definition at line 386 of file diff_context.h.
References libMesh::DiffContext::_dof_indices_var.
|
inline |
Accessor for current edge of Elem object.
Definition at line 928 of file fem_context.h.
References edge.
Referenced by edge_fe_reinit().
|
inline |
Accessor for edge (3D only!) finite element object for variable var.
Definition at line 1332 of file fem_context.h.
References _edge_fe_var.
|
inline |
Definition at line 1339 of file fem_context.h.
References _edge_fe_var.
Accessor for edge (3D only!) finite element object for scalar-valued variable var.
Definition at line 1346 of file fem_context.h.
References _edge_fe_var.
|
inline |
Accessor for element edge quadrature rule.
Definition at line 831 of file fem_context.h.
References _edge_qrule.
|
inline |
Accessor for current Elem object.
Definition at line 908 of file fem_context.h.
References _elem, and libMesh::libmesh_assert().
Referenced by _do_elem_position_set(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyA2::boundary_assembly(), AssemblyF2::boundary_assembly(), build_new_fe(), cached_fe(), libMesh::OldSolutionBase< Output, point_output >::check_old_context(), edge_fe_reinit(), elem_fe_reinit(), elem_position_get(), SolidSystem::element_time_derivative(), libMesh::VariationalSmootherSystem::element_time_derivative(), HilbertSystem::element_time_derivative(), HeatSystem::element_time_derivative(), libMesh::OldSolutionCoefs< Output, point_output >::eval_at_node(), libMesh::OldSolutionValue< Output, point_output >::eval_at_node(), has_side_boundary_id(), libMesh::RBEIMConstruction::initialize_qp_data(), A0::interior_assembly(), A1::interior_assembly(), OutputAssembly::interior_assembly(), EIM_F::interior_assembly(), AssemblyEIM::interior_assembly(), libMesh::FEMSystem::mesh_position_set(), libMesh::FEMSystem::numerical_jacobian(), SlitFunc::operator()(), pre_fe_reinit(), side_boundary_ids(), NavierSystem::side_constraint(), side_fe_reinit(), and SolidSystem::side_time_derivative().
|
inline |
Accessor for current Elem object.
Definition at line 915 of file fem_context.h.
References _elem, and libMesh::libmesh_assert().
|
inline |
Definition at line 944 of file fem_context.h.
References _dim, _elem, and _elem_dim.
Referenced by _do_elem_position_set(), edge_fe_reinit(), elem_fe_reinit(), elem_position_get(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), fixed_point_gradient(), fixed_point_hessian(), fixed_point_value(), get_element_fe(), get_element_qrule(), get_side_fe(), get_side_qrule(), interior_curl(), interior_div(), interior_gradients(), interior_hessians(), interior_values(), point_curl(), point_gradient(), point_hessian(), point_value(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), side_fe_reinit(), side_gradient(), side_gradients(), side_hessians(), side_values(), some_gradient(), some_hessian(), and some_value().
|
inlineinherited |
Accessor for element fixed solution.
Definition at line 210 of file diff_context.h.
References libMesh::DiffContext::_elem_fixed_solution.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::SteadySolver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), fixed_interior_gradient(), fixed_interior_hessian(), fixed_interior_value(), fixed_point_gradient(), fixed_point_hessian(), fixed_point_value(), fixed_side_gradient(), fixed_side_hessian(), fixed_side_value(), and pre_fe_reinit().
|
inlineinherited |
Non-const accessor for element fixed solution.
Definition at line 216 of file diff_context.h.
References libMesh::DiffContext::_elem_fixed_solution.
|
inlineinherited |
Accessor for element fixed solution of a particular variable corresponding to the variable index argument.
Definition at line 223 of file diff_context.h.
References libMesh::DiffContext::_elem_fixed_subsolutions.
|
inlineinherited |
Accessor for element fixed solution of a particular variable corresponding to the variable index argument.
Definition at line 233 of file diff_context.h.
References libMesh::DiffContext::_elem_fixed_subsolutions.
|
inlineinherited |
Const accessor for element Jacobian.
Definition at line 274 of file diff_context.h.
References libMesh::DiffContext::_elem_jacobian, libMesh::DiffContext::_have_local_matrices, and libMesh::libmesh_assert().
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::FEMSystem::assembly(), assembly_with_dg_fem_context(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyA2::boundary_assembly(), A2::boundary_assembly(), A3::boundary_assembly(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), NavierSystem::element_constraint(), CoupledSystem::element_constraint(), libMesh::EigenTimeSolver::element_residual(), NavierSystem::element_time_derivative(), SolidSystem::element_time_derivative(), LaplaceSystem::element_time_derivative(), PoissonSystem::element_time_derivative(), CurlCurlSystem::element_time_derivative(), ElasticitySystem::element_time_derivative(), CoupledSystem::element_time_derivative(), libMesh::VariationalSmootherSystem::element_time_derivative(), HilbertSystem::element_time_derivative(), HeatSystem::element_time_derivative(), B::interior_assembly(), A0::interior_assembly(), M0::interior_assembly(), A1::interior_assembly(), AssemblyA0::interior_assembly(), AcousticsInnerProduct::interior_assembly(), AssemblyA1::interior_assembly(), A2::interior_assembly(), AssemblyA2::interior_assembly(), EIM_IP_assembly::interior_assembly(), AssemblyEIM::interior_assembly(), InnerProductAssembly::interior_assembly(), Ex6InnerProduct::interior_assembly(), NavierSystem::mass_residual(), ElasticitySystem::mass_residual(), libMesh::FEMPhysics::mass_residual(), FirstOrderScalarSystemBase::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), libMesh::EigenTimeSolver::nonlocal_residual(), libMesh::FEMSystem::numerical_jacobian(), pre_fe_reinit(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), NavierSystem::side_constraint(), LaplaceSystem::side_constraint(), libMesh::EigenTimeSolver::side_residual(), SolidSystem::side_time_derivative(), and CurlCurlSystem::side_time_derivative().
|
inlineinherited |
Non-const accessor for element Jacobian.
Definition at line 283 of file diff_context.h.
References libMesh::DiffContext::_elem_jacobian, libMesh::DiffContext::_have_local_matrices, and libMesh::libmesh_assert().
|
inlineinherited |
Const accessor for element Jacobian of particular variables corresponding to the variable index arguments.
Definition at line 293 of file diff_context.h.
References libMesh::DiffContext::_elem_subjacobians, libMesh::DiffContext::_have_local_matrices, and libMesh::libmesh_assert().
|
inlineinherited |
Non-const accessor for element Jacobian of particular variables corresponding to the variable index arguments.
Only available if _have_local_matrices
Definition at line 306 of file diff_context.h.
References libMesh::DiffContext::_elem_subjacobians, libMesh::DiffContext::_have_local_matrices, and libMesh::libmesh_assert().
|
inlineinherited |
Const accessor for element residual.
Definition at line 242 of file diff_context.h.
References libMesh::DiffContext::_elem_residual.
Referenced by libMesh::Euler2Solver::_general_residual(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::FEMSystem::assembly(), assembly_with_dg_fem_context(), AssemblyF0::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyF2::boundary_assembly(), F0::boundary_assembly(), Output0::boundary_assembly(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), NavierSystem::element_constraint(), CoupledSystem::element_constraint(), NavierSystem::element_time_derivative(), SolidSystem::element_time_derivative(), LaplaceSystem::element_time_derivative(), PoissonSystem::element_time_derivative(), CurlCurlSystem::element_time_derivative(), ElasticitySystem::element_time_derivative(), libMesh::VariationalSmootherSystem::element_time_derivative(), CoupledSystem::element_time_derivative(), HilbertSystem::element_time_derivative(), HeatSystem::element_time_derivative(), FirstOrderScalarSystemBase::element_time_derivative(), SecondOrderScalarSystemFirstOrderTimeSolverBase::element_time_derivative(), F0::interior_assembly(), OutputAssembly::interior_assembly(), EIM_F::interior_assembly(), AssemblyF0::interior_assembly(), AssemblyF1::interior_assembly(), NavierSystem::mass_residual(), ElasticitySystem::mass_residual(), libMesh::FEMPhysics::mass_residual(), FirstOrderScalarSystemBase::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), libMesh::FEMSystem::numerical_jacobian(), pre_fe_reinit(), NavierSystem::side_constraint(), LaplaceSystem::side_constraint(), SolidSystem::side_time_derivative(), CurlCurlSystem::side_time_derivative(), and ElasticitySystem::side_time_derivative().
|
inlineinherited |
Non-const accessor for element residual.
Definition at line 248 of file diff_context.h.
References libMesh::DiffContext::_elem_residual.
|
inlineinherited |
Const accessor for element residual of a particular variable corresponding to the variable index argument.
Definition at line 255 of file diff_context.h.
References libMesh::DiffContext::_elem_subresiduals.
|
inlineinherited |
Non-const accessor for element residual of a particular variable corresponding to the variable index argument.
Definition at line 265 of file diff_context.h.
References libMesh::DiffContext::_elem_subresiduals.
|
inlineinherited |
Accessor for element solution.
Definition at line 112 of file diff_context.h.
References libMesh::DiffContext::_elem_solution.
Referenced by _do_elem_position_set(), libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::SteadySolver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), elem_position_get(), interior_curl(), interior_div(), interior_gradient(), interior_hessian(), interior_value(), libMesh::FEMSystem::mesh_position_get(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), libMesh::FEMSystem::numerical_jacobian(), point_curl(), point_gradient(), point_hessian(), point_value(), pre_fe_reinit(), side_gradient(), side_hessian(), and side_value().
|
inlineinherited |
Non-const accessor for element solution.
Definition at line 118 of file diff_context.h.
References libMesh::DiffContext::_elem_solution.
|
inlineinherited |
Accessor for element solution of a particular variable corresponding to the variable index argument.
Definition at line 125 of file diff_context.h.
References libMesh::DiffContext::_elem_subsolutions.
|
inlineinherited |
Accessor for element solution of a particular variable corresponding to the variable index argument.
Definition at line 135 of file diff_context.h.
References libMesh::DiffContext::_elem_subsolutions.
|
inlineinherited |
Accessor for element solution accel of change w.r.t.
time.
Definition at line 177 of file diff_context.h.
References libMesh::DiffContext::_elem_solution_accel.
Referenced by libMesh::NewmarkSolver::_general_residual(), interior_accel(), pre_fe_reinit(), libMesh::FirstOrderUnsteadySolver::prepare_accel(), and side_accel().
|
inlineinherited |
Non-const accessor for element solution accel of change w.r.t.
time.
Definition at line 184 of file diff_context.h.
References libMesh::DiffContext::_elem_solution_accel.
|
inlineinherited |
Accessor for element solution accel for a particular variable corresponding to the variable index argument.
Definition at line 191 of file diff_context.h.
References libMesh::DiffContext::_elem_subsolution_accels.
|
inlineinherited |
Accessor for element solution accel for a particular variable corresponding to the variable index argument.
Definition at line 201 of file diff_context.h.
References libMesh::DiffContext::_elem_subsolution_accels.
|
inlineinherited |
The derivative of the current elem_solution_accel w.r.t.
the unknown solution. Corresponding Jacobian contributions should be multiplied by this amount, or may be skipped if get_elem_solution_accel_derivative() is 0.
Definition at line 450 of file diff_context.h.
References libMesh::DiffContext::elem_solution_accel_derivative.
Referenced by ElasticitySystem::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), and SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual().
|
inlineinherited |
The derivative of the current elem_solution w.r.t.
the unknown solution. Corresponding Jacobian contributions should be multiplied by this amount, or may be skipped if get_elem_solution_derivative() is 0.
Definition at line 432 of file diff_context.h.
References libMesh::DiffContext::elem_solution_derivative.
Referenced by libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), NavierSystem::element_constraint(), ElasticitySystem::element_time_derivative(), HilbertSystem::element_time_derivative(), HeatSystem::element_time_derivative(), NavierSystem::mass_residual(), and NavierSystem::side_constraint().
|
inlineinherited |
Accessor for element solution rate of change w.r.t.
time.
Definition at line 144 of file diff_context.h.
References libMesh::DiffContext::_elem_solution_rate.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), interior_rate(), interior_rate_gradient(), pre_fe_reinit(), libMesh::FirstOrderUnsteadySolver::prepare_accel(), and side_rate().
|
inlineinherited |
Non-const accessor for element solution rate of change w.r.t.
time.
Definition at line 151 of file diff_context.h.
References libMesh::DiffContext::_elem_solution_rate.
|
inlineinherited |
Accessor for element solution rate for a particular variable corresponding to the variable index argument.
Definition at line 158 of file diff_context.h.
References libMesh::DiffContext::_elem_subsolution_rates.
|
inlineinherited |
Accessor for element solution rate for a particular variable corresponding to the variable index argument.
Definition at line 168 of file diff_context.h.
References libMesh::DiffContext::_elem_subsolution_rates.
|
inlineinherited |
The derivative of the current elem_solution_rate w.r.t.
the unknown solution. Corresponding Jacobian contributions should be multiplied by this amount, or may be skipped if get_elem_solution_rate_derivative() is 0.
Definition at line 441 of file diff_context.h.
References libMesh::DiffContext::elem_solution_rate_derivative.
Referenced by libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), FirstOrderScalarSystemBase::mass_residual(), and libMesh::FirstOrderUnsteadySolver::prepare_accel().
|
inline |
Accessor for interior finite element object for variable var for the largest dimension in the mesh.
We default to the largest mesh dim if this method is called before the Elem * is set in the FEMContext, e.g. in FEMSystem::init_context (or a subclass).
Definition at line 277 of file fem_context.h.
References get_elem_dim().
Referenced by libMesh::ExactSolution::_compute_error(), _do_elem_position_set(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), assembly_with_dg_fem_context(), libMesh::VariationalSmootherSystem::compute_element_reference_volume(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), elem_position_get(), NavierSystem::element_constraint(), CoupledSystem::element_constraint(), PoissonSystem::element_postprocess(), LaplaceSystem::element_postprocess(), LaplaceQoI::element_qoi(), HeatSystem::element_qoi(), LaplaceQoI::element_qoi_derivative(), LaplaceSystem::element_qoi_derivative(), HeatSystem::element_qoi_derivative(), NavierSystem::element_time_derivative(), SolidSystem::element_time_derivative(), PoissonSystem::element_time_derivative(), LaplaceSystem::element_time_derivative(), CurlCurlSystem::element_time_derivative(), ElasticitySystem::element_time_derivative(), libMesh::VariationalSmootherSystem::element_time_derivative(), CoupledSystem::element_time_derivative(), HilbertSystem::element_time_derivative(), HeatSystem::element_time_derivative(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), fixed_interior_gradient(), fixed_interior_hessian(), fixed_interior_value(), get_element_fe(), CoupledSystemQoI::init_context(), LaplaceQoI::init_context(), NavierSystem::init_context(), SolidSystem::init_context(), PoissonSystem::init_context(), LaplaceSystem::init_context(), CurlCurlSystem::init_context(), ElasticitySystem::init_context(), libMesh::VariationalSmootherSystem::init_context(), CoupledSystem::init_context(), HilbertSystem::init_context(), libMesh::ParsedFEMFunction< T >::init_context(), libMesh::WrappedFunctor< Output >::init_context(), HeatSystem::init_context(), ElasticityRBConstruction::init_context(), SimpleRBConstruction::init_context(), libMesh::FEMSystem::init_context(), libMesh::RBEIMConstruction::init_context(), libMesh::RBEIMConstruction::initialize_qp_data(), interior_accel(), B::interior_assembly(), A0::interior_assembly(), M0::interior_assembly(), A1::interior_assembly(), AssemblyA0::interior_assembly(), AcousticsInnerProduct::interior_assembly(), AssemblyA1::interior_assembly(), A2::interior_assembly(), AssemblyA2::interior_assembly(), F0::interior_assembly(), OutputAssembly::interior_assembly(), EIM_IP_assembly::interior_assembly(), EIM_F::interior_assembly(), AssemblyEIM::interior_assembly(), InnerProductAssembly::interior_assembly(), AssemblyF0::interior_assembly(), AssemblyF1::interior_assembly(), Ex6InnerProduct::interior_assembly(), interior_gradient(), interior_hessian(), interior_rate(), interior_rate_gradient(), NavierSystem::mass_residual(), ElasticitySystem::mass_residual(), libMesh::FEMPhysics::mass_residual(), Integrate::operator()(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), and NavierSystem::side_constraint().
Accessor for interior finite element object for scalar-valued variable var for the largest dimension in the mesh.
We default to the largest mesh dim if this method is called before the Elem * is set in the FEMContext, e.g. in FEMSystem::init_context (or a subclass).
Definition at line 286 of file fem_context.h.
References get_elem_dim(), and get_element_fe().
|
inline |
Accessor for interior finite element object for variable var for dimension dim.
Definition at line 1278 of file fem_context.h.
References _element_fe_var, dim, and libMesh::libmesh_assert().
|
inline |
Accessor for interior finite element object for variable var for dimension dim.
Definition at line 1287 of file fem_context.h.
References _element_fe_var, dim, and libMesh::libmesh_assert().
Accessor for interior finite element object for scalar-valued variable var for dimension dim.
Definition at line 1296 of file fem_context.h.
References _element_fe_var, dim, and libMesh::libmesh_assert().
|
inline |
Accessor for element interior quadrature rule for the dimension of the current _elem.
Definition at line 802 of file fem_context.h.
References get_elem_dim().
Referenced by assembly_with_dg_fem_context(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), NavierSystem::element_constraint(), CoupledSystem::element_constraint(), PoissonSystem::element_postprocess(), LaplaceSystem::element_postprocess(), LaplaceQoI::element_qoi(), HeatSystem::element_qoi(), LaplaceQoI::element_qoi_derivative(), LaplaceSystem::element_qoi_derivative(), HeatSystem::element_qoi_derivative(), NavierSystem::element_time_derivative(), SolidSystem::element_time_derivative(), LaplaceSystem::element_time_derivative(), PoissonSystem::element_time_derivative(), CurlCurlSystem::element_time_derivative(), ElasticitySystem::element_time_derivative(), CoupledSystem::element_time_derivative(), libMesh::VariationalSmootherSystem::element_time_derivative(), HilbertSystem::element_time_derivative(), HeatSystem::element_time_derivative(), FirstOrderScalarSystemBase::element_time_derivative(), SecondOrderScalarSystemFirstOrderTimeSolverBase::element_time_derivative(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::FEMPhysics::eulerian_residual(), B::interior_assembly(), A0::interior_assembly(), M0::interior_assembly(), A1::interior_assembly(), AssemblyA0::interior_assembly(), AcousticsInnerProduct::interior_assembly(), AssemblyA1::interior_assembly(), A2::interior_assembly(), AssemblyA2::interior_assembly(), F0::interior_assembly(), OutputAssembly::interior_assembly(), EIM_IP_assembly::interior_assembly(), EIM_F::interior_assembly(), AssemblyEIM::interior_assembly(), InnerProductAssembly::interior_assembly(), AssemblyF0::interior_assembly(), AssemblyF1::interior_assembly(), Ex6InnerProduct::interior_assembly(), NavierSystem::mass_residual(), ElasticitySystem::mass_residual(), libMesh::FEMPhysics::mass_residual(), FirstOrderScalarSystemBase::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual(), and libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh().
|
inline |
Accessor for element interior quadrature rule.
Definition at line 815 of file fem_context.h.
References _element_qrule, dim, and libMesh::libmesh_assert().
|
inlineinherited |
The derivative of the current fixed_elem_solution w.r.t.
the unknown solution. Corresponding Jacobian contributions should be multiplied by this amount, or may be skipped if get_fixed_elem_solution_derivative() is 0.
Definition at line 459 of file diff_context.h.
References libMesh::DiffContext::fixed_solution_derivative.
|
inherited |
Return a reference to DenseSubVector localization of localized_vector at variable var contained in the _localized_vectors map.
Definition at line 154 of file diff_context.C.
References libMesh::DiffContext::_localized_vectors.
Referenced by interior_gradients(), interior_hessians(), interior_values(), side_gradients(), side_hessians(), and side_values().
|
inherited |
const accessible version of get_localized_subvector function
Definition at line 160 of file diff_context.C.
References libMesh::DiffContext::_localized_vectors, and libMesh::libmesh_assert().
|
inherited |
Return a reference to DenseVector localization of localized_vector contained in the _localized_vectors map.
Definition at line 140 of file diff_context.C.
References libMesh::DiffContext::_localized_vectors.
|
inherited |
const accessible version of get_localized_vector function
Definition at line 146 of file diff_context.C.
References libMesh::DiffContext::_localized_vectors, and libMesh::libmesh_assert().
|
inline |
Accessor for moving mesh System.
Definition at line 848 of file fem_context.h.
References _mesh_sys.
|
inline |
Accessor for moving mesh System.
Definition at line 854 of file fem_context.h.
References _mesh_sys.
|
inline |
Accessor for x-variable of moving mesh System.
Definition at line 860 of file fem_context.h.
References _mesh_x_var.
Referenced by _do_elem_position_set(), and elem_position_get().
|
inline |
Accessor for y-variable of moving mesh System.
Definition at line 874 of file fem_context.h.
References _mesh_y_var.
Referenced by _do_elem_position_set(), and elem_position_get().
|
inline |
Accessor for z-variable of moving mesh System.
Definition at line 888 of file fem_context.h.
References _mesh_z_var.
Referenced by _do_elem_position_set(), and elem_position_get().
|
inlineinherited |
Const accessor for QoI derivatives.
Definition at line 329 of file diff_context.h.
References libMesh::DiffContext::_elem_qoi_derivative.
Referenced by LaplaceQoI::element_qoi_derivative(), LaplaceSystem::element_qoi_derivative(), HeatSystem::element_qoi_derivative(), pre_fe_reinit(), CoupledSystemQoI::side_qoi_derivative(), and LaplaceSystem::side_qoi_derivative().
|
inlineinherited |
Non-const accessor for QoI derivatives.
Definition at line 335 of file diff_context.h.
References libMesh::DiffContext::_elem_qoi_derivative.
|
inlineinherited |
Const accessor for QoI derivative of a particular qoi and variable corresponding to the index arguments.
Definition at line 342 of file diff_context.h.
References libMesh::DiffContext::_elem_qoi_subderivatives.
|
inlineinherited |
Non-const accessor for QoI derivative of a particular qoi and variable corresponding to the index arguments.
Definition at line 353 of file diff_context.h.
References libMesh::DiffContext::_elem_qoi_subderivatives.
|
inlineinherited |
Const accessor for QoI vector.
Definition at line 317 of file diff_context.h.
References libMesh::DiffContext::_elem_qoi.
Referenced by LaplaceQoI::element_qoi(), HeatSystem::element_qoi(), and CoupledSystemQoI::side_qoi().
|
inlineinherited |
Non-const accessor for QoI vector.
Definition at line 323 of file diff_context.h.
References libMesh::DiffContext::_elem_qoi.
|
inline |
Accessor for current side of Elem object.
Definition at line 922 of file fem_context.h.
References side.
Referenced by libMesh::RBConstruction::add_scaled_matrix_and_vector(), assembly_with_dg_fem_context(), side_fe_reinit(), and SolidSystem::side_time_derivative().
|
inline |
Accessor for edge/face (2D/3D) finite element object for variable var for the largest dimension in the mesh.
We default to the largest mesh dim if this method is called before the Elem * is set in the FEMContext, e.g. in FEMSystem::init_context (or a subclass).
Definition at line 317 of file fem_context.h.
References get_elem_dim().
Referenced by assembly_with_dg_fem_context(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyA2::boundary_assembly(), AssemblyF2::boundary_assembly(), A2::boundary_assembly(), A3::boundary_assembly(), F0::boundary_assembly(), Output0::boundary_assembly(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::ParsedFEMFunction< T >::eval_args(), fixed_side_gradient(), fixed_side_hessian(), fixed_side_value(), get_side_fe(), CoupledSystemQoI::init_context(), NavierSystem::init_context(), SolidSystem::init_context(), PoissonSystem::init_context(), LaplaceSystem::init_context(), CurlCurlSystem::init_context(), ElasticitySystem::init_context(), libMesh::LaplacianErrorEstimator::init_context(), libMesh::VariationalSmootherSystem::init_context(), CoupledSystem::init_context(), HilbertSystem::init_context(), libMesh::DiscontinuityMeasure::init_context(), libMesh::ParsedFEMFunction< T >::init_context(), HeatSystem::init_context(), libMesh::KellyErrorEstimator::init_context(), ElasticityRBConstruction::init_context(), SimpleRBConstruction::init_context(), libMesh::RBEIMConstruction::init_context(), libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), side_accel(), LaplaceSystem::side_constraint(), side_hessian(), LaplaceSystem::side_postprocess(), CoupledSystemQoI::side_qoi(), CoupledSystemQoI::side_qoi_derivative(), LaplaceSystem::side_qoi_derivative(), side_rate(), SolidSystem::side_time_derivative(), CurlCurlSystem::side_time_derivative(), and ElasticitySystem::side_time_derivative().
Accessor for side finite element object for scalar-valued variable var for the largest dimension in the mesh.
We default to the largest mesh dim if this method is called before the Elem * is set in the FEMContext, e.g. in FEMSystem::init_context (or a subclass).
Definition at line 326 of file fem_context.h.
References get_elem_dim(), and get_side_fe().
|
inline |
Accessor for edge/face (2D/3D) finite element object for variable var for dimension dim.
Definition at line 1305 of file fem_context.h.
References _side_fe_var, dim, and libMesh::libmesh_assert().
|
inline |
Accessor for edge/face (2D/3D) finite element object for variable var for dimension dim.
Definition at line 1314 of file fem_context.h.
References _side_fe_var, dim, and libMesh::libmesh_assert().
Accessor for side finite element object for scalar-valued variable var for dimension dim.
Definition at line 1323 of file fem_context.h.
References _side_fe_var, dim, and libMesh::libmesh_assert().
|
inline |
Accessor for element side quadrature rule for the dimension of the current _elem.
Definition at line 809 of file fem_context.h.
References get_elem_dim().
Referenced by assembly_with_dg_fem_context(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyA2::boundary_assembly(), AssemblyF2::boundary_assembly(), A2::boundary_assembly(), A3::boundary_assembly(), F0::boundary_assembly(), Output0::boundary_assembly(), LaplaceSystem::side_constraint(), LaplaceSystem::side_postprocess(), CoupledSystemQoI::side_qoi(), CoupledSystemQoI::side_qoi_derivative(), LaplaceSystem::side_qoi_derivative(), SolidSystem::side_time_derivative(), CurlCurlSystem::side_time_derivative(), and ElasticitySystem::side_time_derivative().
|
inline |
Accessor for element side quadrature rule.
Definition at line 822 of file fem_context.h.
References _side_qrule, dim, and libMesh::libmesh_assert().
|
inlineinherited |
Accessor for associated system.
Definition at line 106 of file diff_context.h.
References libMesh::DiffContext::_system.
Referenced by attach_quadrature_rules(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyA2::boundary_assembly(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), HeatSystem::element_qoi(), HeatSystem::element_qoi_derivative(), HeatSystem::element_time_derivative(), find_hardest_fe_type(), CoupledSystemQoI::init_context(), libMesh::RBEIMConstruction::init_context(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), and libMesh::DifferentiablePhysics::nonlocal_mass_residual().
|
inlineinherited |
Accessor for the time variable stored in the system class.
Definition at line 411 of file diff_context.h.
References libMesh::DiffContext::system_time.
Referenced by _update_time_from_system().
|
inlineinherited |
Accessor for the time for which the current nonlinear_solution is defined.
Definition at line 417 of file diff_context.h.
References libMesh::DiffContext::time.
|
inline |
Test for current Elem object.
Definition at line 902 of file fem_context.h.
References _elem.
Referenced by build_new_fe(), cached_fe(), elem_fe_reinit(), and pre_fe_reinit().
bool libMesh::FEMContext::has_side_boundary_id | ( | boundary_id_type | id | ) | const |
Reports if the boundary id is found on the current side.
Definition at line 298 of file fem_context.C.
References _boundary_info, get_elem(), libMesh::BoundaryInfo::has_boundary_id(), and side.
Referenced by A2::boundary_assembly(), A3::boundary_assembly(), F0::boundary_assembly(), Output0::boundary_assembly(), CoupledSystemQoI::side_qoi(), CoupledSystemQoI::side_qoi_derivative(), and ElasticitySystem::side_time_derivative().
|
private |
Helper function used in constructors to set up internal data.
Definition at line 198 of file fem_context.C.
References _active_vars, _edge_fe, _edge_fe_var, _elem_dims, _element_fe, _element_fe_var, _extra_quadrature_order, _side_fe, _side_fe_var, libMesh::FEAbstract::build(), dim, libMesh::FEType::family, libMesh::System::get_dof_map(), libMesh::libmesh_assert(), libMesh::make_range(), libMesh::System::n_vars(), libMesh::SCALAR, libMesh::DofMap::should_p_refine(), use_default_quadrature_rules(), and libMesh::System::variable_type().
Referenced by FEMContext().
template LIBMESH_EXPORT void libMesh::FEMContext::interior_accel< Gradient > | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | u | ||
) | const |
var
at the quadrature point qp
on the current element interior. Definition at line 1390 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution_accel(), get_element_fe(), and some_value().
Referenced by ElasticitySystem::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), and SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual().
template LIBMESH_EXPORT void libMesh::FEMContext::interior_curl< Gradient > | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | curl_u | ||
) | const |
var
at the physical point p
on the current element. Definition at line 598 of file fem_context.C.
References libMesh::DiffContext::_elem_subsolutions, libMesh::FEGenericBase< OutputType >::get_curl_phi(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), and libMesh::DiffContext::get_elem_solution().
Referenced by CurlCurlSystem::element_time_derivative().
template LIBMESH_EXPORT void libMesh::FEMContext::interior_div< Number > | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | div_u | ||
) | const |
var
at the physical point p
on the current element. Definition at line 629 of file fem_context.C.
References libMesh::DiffContext::_elem_subsolutions, libMesh::FEGenericBase< OutputType >::get_div_phi(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), and libMesh::DiffContext::get_elem_solution().
var
at the quadrature point qp
on the current element interior.Definition at line 467 of file fem_context.C.
Referenced by NavierSystem::element_constraint(), CoupledSystem::element_constraint(), PoissonSystem::element_postprocess(), NavierSystem::element_time_derivative(), LaplaceSystem::element_time_derivative(), PoissonSystem::element_time_derivative(), ElasticitySystem::element_time_derivative(), CoupledSystem::element_time_derivative(), HilbertSystem::element_time_derivative(), HeatSystem::element_time_derivative(), and libMesh::FEMPhysics::eulerian_residual().
void libMesh::FEMContext::interior_gradient | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | du | ||
) | const |
var
at the quadrature point qp
on the current element interior.Definition at line 480 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution(), get_element_fe(), and some_gradient().
template LIBMESH_EXPORT void libMesh::FEMContext::interior_gradients< Tensor > | ( | unsigned int | var, |
const NumericVector< Number > & | _system_vector, | ||
std::vector< OutputType > & | interior_gradients_vector | ||
) | const |
Fills a vector with the gradient of the solution variable var
at all the quadrature points in the current element interior.
Definition at line 494 of file fem_context.C.
References libMesh::DiffContext::get_dof_indices(), libMesh::FEGenericBase< OutputType >::get_dphi(), get_elem_dim(), libMesh::DiffContext::get_localized_subvector(), and libMesh::index_range().
var
at the quadrature point qp
on the current element interior.Definition at line 532 of file fem_context.C.
void libMesh::FEMContext::interior_hessian | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | d2u | ||
) | const |
var
at the quadrature point qp
on the current element interior.Definition at line 542 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution(), get_element_fe(), and some_hessian().
template LIBMESH_EXPORT void libMesh::FEMContext::interior_hessians< Tensor > | ( | unsigned int | var, |
const NumericVector< Number > & | _system_vector, | ||
std::vector< OutputType > & | d2u_vals | ||
) | const |
Fills a vector of hessians of the _system_vector at the all the quadrature points in the current element interior.
This is the preferred API.
Definition at line 556 of file fem_context.C.
References libMesh::FEGenericBase< OutputType >::get_d2phi(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), libMesh::DiffContext::get_localized_subvector(), and libMesh::index_range().
template LIBMESH_EXPORT void libMesh::FEMContext::interior_rate< Gradient > | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | u | ||
) | const |
var
at the quadrature point qp
on the current element interior. Definition at line 1359 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution_rate(), get_element_fe(), and some_value().
Referenced by libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), NavierSystem::mass_residual(), libMesh::FEMPhysics::mass_residual(), and FirstOrderScalarSystemBase::mass_residual().
template LIBMESH_EXPORT void libMesh::FEMContext::interior_rate_gradient< Tensor > | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | u | ||
) | const |
var
at the quadrature point qp
on the current element interior. Definition at line 1369 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution_rate(), get_element_fe(), and some_gradient().
var
at the quadrature point qp
on the current element interior.Definition at line 412 of file fem_context.C.
Referenced by libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), LaplaceSystem::element_postprocess(), LaplaceQoI::element_qoi(), HeatSystem::element_qoi(), NavierSystem::element_time_derivative(), CurlCurlSystem::element_time_derivative(), CoupledSystem::element_time_derivative(), and HilbertSystem::element_time_derivative().
void libMesh::FEMContext::interior_value | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | u | ||
) | const |
var
at the quadrature point qp
on the current element interior.Definition at line 422 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution(), and some_value().
template LIBMESH_EXPORT void libMesh::FEMContext::interior_values< Gradient > | ( | unsigned int | var, |
const NumericVector< Number > & | _system_vector, | ||
std::vector< OutputType > & | interior_values_vector | ||
) | const |
Fills a vector of values of the _system_vector at the all the quadrature points in the current element interior.
Definition at line 432 of file fem_context.C.
References libMesh::DiffContext::get_dof_indices(), get_elem_dim(), libMesh::DiffContext::get_localized_subvector(), libMesh::FEGenericBase< OutputType >::get_phi(), and libMesh::index_range().
Referenced by HeatSystem::element_qoi_derivative().
|
inlineinherited |
Accessor for querying whether we need to do a primal or adjoint solve.
Definition at line 466 of file diff_context.h.
References libMesh::DiffContext::_is_adjoint.
|
inlineinherited |
Accessor for setting whether we need to do a primal or adjoint solve.
Definition at line 473 of file diff_context.h.
References libMesh::DiffContext::_is_adjoint.
|
inlineinherited |
Total number of dof indices on the element.
Definition at line 395 of file diff_context.h.
References libMesh::DiffContext::_dof_indices.
Referenced by NavierSystem::element_constraint(), CoupledSystem::element_constraint(), LaplaceQoI::element_qoi_derivative(), LaplaceSystem::element_qoi_derivative(), HeatSystem::element_qoi_derivative(), NavierSystem::element_time_derivative(), SolidSystem::element_time_derivative(), PoissonSystem::element_time_derivative(), LaplaceSystem::element_time_derivative(), CurlCurlSystem::element_time_derivative(), ElasticitySystem::element_time_derivative(), CoupledSystem::element_time_derivative(), HilbertSystem::element_time_derivative(), HeatSystem::element_time_derivative(), NavierSystem::mass_residual(), ElasticitySystem::mass_residual(), NavierSystem::side_constraint(), LaplaceSystem::side_constraint(), CoupledSystemQoI::side_qoi_derivative(), LaplaceSystem::side_qoi_derivative(), SolidSystem::side_time_derivative(), CurlCurlSystem::side_time_derivative(), and ElasticitySystem::side_time_derivative().
Total number of dof indices of the particular variable corresponding to the index argument.
Definition at line 402 of file diff_context.h.
References libMesh::DiffContext::_dof_indices_var.
|
inlineinherited |
Number of variables in solution.
Definition at line 100 of file diff_context.h.
References libMesh::DiffContext::_dof_indices_var.
Referenced by libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), libMesh::FEMPhysics::eulerian_residual(), libMesh::LaplacianErrorEstimator::init_context(), libMesh::DiscontinuityMeasure::init_context(), libMesh::WrappedFunctor< Output >::init_context(), libMesh::KellyErrorEstimator::init_context(), libMesh::FEMPhysics::mass_residual(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), and libMesh::FEMSystem::numerical_jacobian().
|
overridevirtual |
Gives derived classes the opportunity to reinitialize data needed for nonlocal calculations at a new point within a timestep.
Reimplemented from libMesh::DiffContext.
Definition at line 1467 of file fem_context.C.
References _update_time_from_system(), and elem_fe_reinit().
void libMesh::FEMContext::point_accel | ( | unsigned int | var, |
const Point & | p, | ||
OutputType & | u | ||
) | const |
var
at the physical point p
on the current element. template LIBMESH_EXPORT void libMesh::FEMContext::point_curl< Gradient > | ( | unsigned int | var, |
const Point & | p, | ||
OutputType & | curl_u, | ||
const Real | tolerance = TOLERANCE |
||
) | const |
var
at the physical point p
on the current element.Allows evaluation of points within a relative tolerance outside the element.
Definition at line 1023 of file fem_context.C.
References libMesh::DiffContext::_elem_subsolutions, build_new_fe(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), and libMesh::DiffContext::get_elem_solution().
var
at the physical point p
on the current element.Definition at line 920 of file fem_context.C.
Referenced by libMesh::ParsedFEMFunction< T >::eval_args(), CoupledFEMFunctionsx::operator()(), and CoupledFEMFunctionsy::operator()().
void libMesh::FEMContext::point_gradient | ( | unsigned int | var, |
const Point & | p, | ||
OutputType & | grad_u, | ||
const Real | tolerance = TOLERANCE |
||
) | const |
var
at the physical point p
on the current element.Allows evaluation of points within a relative tolerance outside the element.
Definition at line 932 of file fem_context.C.
References libMesh::DiffContext::_elem_subsolutions, build_new_fe(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), and libMesh::DiffContext::get_elem_solution().
var
at the physical point p
on the current element.Definition at line 972 of file fem_context.C.
Referenced by libMesh::ParsedFEMFunction< T >::eval_args().
void libMesh::FEMContext::point_hessian | ( | unsigned int | var, |
const Point & | p, | ||
OutputType & | hess_u, | ||
const Real | tolerance = TOLERANCE |
||
) | const |
var
at the physical point p
on the current element.Allows evaluation of points within a relative tolerance outside the element.
Definition at line 983 of file fem_context.C.
References libMesh::DiffContext::_elem_subsolutions, build_new_fe(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), and libMesh::DiffContext::get_elem_solution().
void libMesh::FEMContext::point_rate | ( | unsigned int | var, |
const Point & | p, | ||
OutputType & | u | ||
) | const |
var
at the physical point p
on the current element. var
at the physical point p
on the current element.Definition at line 874 of file fem_context.C.
Referenced by libMesh::ParsedFEMFunction< T >::eval_args(), CoupledFEMFunctionsx::operator()(), CoupledFEMFunctionsy::operator()(), and NavierSystem::side_constraint().
void libMesh::FEMContext::point_value | ( | unsigned int | var, |
const Point & | p, | ||
OutputType & | u, | ||
const Real | tolerance = TOLERANCE |
||
) | const |
var
at the physical point p
on the current element.Allows evaluation of points within a relative tolerance outside the element.
Definition at line 884 of file fem_context.C.
References libMesh::DiffContext::_elem_subsolutions, build_new_fe(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), and libMesh::DiffContext::get_elem_solution().
Reinitializes local data vectors/matrices on the current geometric element.
Definition at line 1683 of file fem_context.C.
References _active_vars, _custom_solution, libMesh::DiffContext::_elem_qoi_subderivatives, libMesh::DiffContext::_have_local_matrices, libMesh::DiffContext::_localized_vectors, algebraic_type(), CURRENT, libMesh::System::current_local_solution, libMesh::DofMap::dof_indices(), DOFS_ONLY, libMesh::NumericVector< T >::get(), libMesh::DiffContext::get_dof_indices(), libMesh::System::get_dof_map(), get_elem(), libMesh::DiffContext::get_elem_fixed_solution(), libMesh::DiffContext::get_elem_jacobian(), libMesh::DiffContext::get_elem_residual(), libMesh::DiffContext::get_elem_solution(), libMesh::DiffContext::get_elem_solution_accel(), libMesh::DiffContext::get_elem_solution_rate(), libMesh::DiffContext::get_qoi_derivatives(), libMesh::DifferentiablePhysics::get_second_order_vars(), libMesh::DifferentiableSystem::get_time_solver(), libMesh::DenseVector< T >::get_values(), has_elem(), libMesh::TimeSolver::is_steady(), libMesh::make_range(), libMesh::System::n_qois(), libMesh::System::n_vars(), NONE, OLD, libMesh::DofMap::old_dof_indices(), OLD_DOFS_ONLY, libMesh::DenseVector< T >::resize(), libMesh::DenseMatrix< T >::resize(), set_elem(), libMesh::UnsteadySolver::time_order(), and libMesh::System::use_fixed_solution.
Referenced by libMesh::ExactSolution::_compute_error(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), libMesh::FEMSystem::assembly(), assembly_with_dg_fem_context(), libMesh::VariationalSmootherSystem::compute_element_reference_volume(), HilbertSystem::element_time_derivative(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::FEMSystem::mesh_position_get(), libMesh::FEMSystem::mesh_position_set(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), Integrate::operator()(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), libMesh::System::project_vector(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), and OverlappingCouplingGhostingTest::run_sparsity_pattern_test().
|
inline |
Setting which determines whether to initialize algebraic structures (elem_*) on each element and set their values from current_local_solution.
Algebraic initialization may be disabled for efficiency in cases where FEMContext is only used as a convenient container of FE objects.
Definition at line 986 of file fem_context.h.
References _atype.
Referenced by libMesh::OldSolutionBase< Output, point_output >::init_context().
|
inline |
Set a NumericVector to be used in place of current_local_solution for calculating elem_solution.
Set to nullptr to restore the current_local_solution behavior. Advanced DifferentiableSystem specific capabilities will only be enabled in the current_local_solution case.
Definition at line 1001 of file fem_context.h.
References _custom_solution.
|
inherited |
Points the _deltat member of this class at a timestep value stored in the creating System, for example DiffSystem::deltat.
Definition at line 109 of file diff_context.C.
References libMesh::DiffContext::_deltat.
Referenced by libMesh::FEMSystem::init_context().
|
protected |
Helper function to promote accessor usage.
Definition at line 1914 of file fem_context.C.
References _elem, _elem_dim, and libMesh::Elem::dim().
Referenced by pre_fe_reinit().
void libMesh::FEMContext::set_jacobian_tolerance | ( | Real | tol | ) |
Calls set_jacobian_tolerance() on all the FE objects controlled by this class.
(Actually, it calls this on the underlying)
Definition at line 1586 of file fem_context.C.
References _edge_fe, _element_fe, and _side_fe.
|
inlinevirtual |
Tells the FEMContext that system sys
contains the isoparametric Lagrangian variables which correspond to the coordinates of mesh nodes, in problems where the mesh itself is expected to move in time.
This should be set automatically if the FEMPhysics requires it.
Definition at line 842 of file fem_context.h.
References _mesh_sys.
|
inline |
Accessor for x-variable of moving mesh System.
This should be set automatically if the FEMPhysics requires it.
Definition at line 868 of file fem_context.h.
References _mesh_x_var.
|
inline |
Accessor for y-variable of moving mesh System.
This should be set automatically if the FEMPhysics requires it.
Definition at line 882 of file fem_context.h.
References _mesh_y_var.
|
inline |
Accessor for z-variable of moving mesh System.
This should be set automatically if the FEMPhysics requires it.
Definition at line 896 of file fem_context.h.
References _mesh_z_var.
|
inlineinherited |
Set the time for which the current nonlinear_solution is defined.
Definition at line 423 of file diff_context.h.
References libMesh::DiffContext::time.
Referenced by _update_time_from_system().
template LIBMESH_EXPORT void libMesh::FEMContext::side_accel< Gradient > | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | u | ||
) | const |
var
at the quadrature point qp
on the current element side. Definition at line 1402 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution_accel(), get_side_fe(), and some_value().
void libMesh::FEMContext::side_boundary_ids | ( | std::vector< boundary_id_type > & | vec_to_fill | ) | const |
As above, but fills in the std::set provided by the user.
Definition at line 305 of file fem_context.C.
References _boundary_info, libMesh::BoundaryInfo::boundary_ids(), get_elem(), and side.
|
virtual |
Reinitializes side FE objects on the current geometric element.
Reimplemented in libMesh::DGFEMContext.
Definition at line 1498 of file fem_context.C.
References _side_fe, dim, get_elem(), get_elem_dim(), get_side(), and libMesh::libmesh_assert().
Referenced by elem_side_reinit(), and libMesh::DGFEMContext::side_fe_reinit().
var
at the quadrature point qp
on the current element side.Definition at line 719 of file fem_context.C.
Referenced by LaplaceSystem::side_postprocess().
void libMesh::FEMContext::side_gradient | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | du | ||
) | const |
var
at the quadrature point qp
on the current element side.Definition at line 730 of file fem_context.C.
References libMesh::DiffContext::_elem_subsolutions, libMesh::DiffContext::get_dof_indices(), libMesh::FEGenericBase< OutputType >::get_dphi(), get_elem_dim(), and libMesh::DiffContext::get_elem_solution().
template LIBMESH_EXPORT void libMesh::FEMContext::side_gradients< Tensor > | ( | unsigned int | var, |
const NumericVector< Number > & | _system_vector, | ||
std::vector< OutputType > & | side_gradients_vector | ||
) | const |
Fills a vector with the gradient of the solution variable var
at all the quadrature points on the current element side.
Definition at line 764 of file fem_context.C.
References libMesh::DiffContext::get_dof_indices(), libMesh::FEGenericBase< OutputType >::get_dphi(), get_elem_dim(), libMesh::DiffContext::get_localized_subvector(), and libMesh::index_range().
var
at the quadrature point qp
on the current element side.Definition at line 802 of file fem_context.C.
void libMesh::FEMContext::side_hessian | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | d2u | ||
) | const |
var
at the quadrature point qp
on the current element side.Definition at line 815 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution(), get_side_fe(), and some_hessian().
template LIBMESH_EXPORT void libMesh::FEMContext::side_hessians< Tensor > | ( | unsigned int | var, |
const NumericVector< Number > & | _system_vector, | ||
std::vector< OutputType > & | d2u_vals | ||
) | const |
Fills a vector of hessians of the _system_vector at the all the quadrature points on the current element side.
This is the preferred API.
Definition at line 831 of file fem_context.C.
References libMesh::FEGenericBase< OutputType >::get_d2phi(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), libMesh::DiffContext::get_localized_subvector(), and libMesh::index_range().
template LIBMESH_EXPORT void libMesh::FEMContext::side_rate< Gradient > | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | u | ||
) | const |
var
at the quadrature point qp
on the current element side. Definition at line 1380 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution_rate(), get_side_fe(), and some_value().
var
at the quadrature point qp
on the current element side.Definition at line 661 of file fem_context.C.
Referenced by LaplaceSystem::side_constraint(), CoupledSystemQoI::side_qoi(), CoupledSystemQoI::side_qoi_derivative(), and CurlCurlSystem::side_time_derivative().
void libMesh::FEMContext::side_value | ( | unsigned int | var, |
unsigned int | qp, | ||
OutputType & | u | ||
) | const |
var
at the quadrature point qp
on the current element side.Definition at line 673 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution(), and some_value().
template LIBMESH_EXPORT void libMesh::FEMContext::side_values< Gradient > | ( | unsigned int | var, |
const NumericVector< Number > & | _system_vector, | ||
std::vector< OutputType > & | side_values_vector | ||
) | const |
Fills a vector of values of the _system_vector at the all the quadrature points on the current element side.
Definition at line 684 of file fem_context.C.
References libMesh::DiffContext::get_dof_indices(), get_elem_dim(), libMesh::DiffContext::get_localized_subvector(), libMesh::FEGenericBase< OutputType >::get_phi(), and libMesh::index_range().
|
protected |
Helper function to reduce some code duplication in the *interior_gradient methods.
Definition at line 349 of file fem_context.C.
References libMesh::DiffContext::get_dof_indices(), libMesh::FEGenericBase< OutputType >::get_dphi(), and get_elem_dim().
Referenced by fixed_interior_gradient(), fixed_side_gradient(), interior_gradient(), and interior_rate_gradient().
|
protected |
Helper function to reduce some code duplication in the *interior_hessian methods.
Definition at line 382 of file fem_context.C.
References libMesh::FEGenericBase< OutputType >::get_d2phi(), libMesh::DiffContext::get_dof_indices(), and get_elem_dim().
Referenced by fixed_interior_hessian(), fixed_side_hessian(), interior_hessian(), and side_hessian().
|
protected |
Helper function to reduce some code duplication in the *interior_value methods.
Definition at line 315 of file fem_context.C.
References libMesh::DiffContext::get_dof_indices(), get_elem_dim(), and libMesh::FEGenericBase< OutputType >::get_phi().
Referenced by fixed_interior_value(), fixed_side_value(), interior_accel(), interior_rate(), interior_value(), side_accel(), side_rate(), and side_value().
void libMesh::FEMContext::use_default_quadrature_rules | ( | int | extra_quadrature_order = 0 | ) |
Use quadrature rules designed to over-integrate a mass matrix, plus extra_quadrature_order
.
Definition at line 155 of file fem_context.C.
References _edge_qrule, _elem_dims, _element_qrule, _extra_quadrature_order, _side_qrule, attach_quadrature_rules(), libMesh::FEType::default_quadrature_rule(), dim, and find_hardest_fe_type().
Referenced by init_internal_data().
void libMesh::FEMContext::use_unweighted_quadrature_rules | ( | int | extra_quadrature_order = 0 | ) |
Use quadrature rules designed to exactly integrate unweighted undistorted basis functions, plus extra_quadrature_order
.
Definition at line 177 of file fem_context.C.
References _edge_qrule, _elem_dims, _element_qrule, _extra_quadrature_order, _side_qrule, attach_quadrature_rules(), dim, find_hardest_fe_type(), and libMesh::FEType::unweighted_quadrature_rule().
|
protected |
Variables on which to enable calculations, or nullptr if all variables in the System are to be enabled.
Definition at line 1054 of file fem_context.h.
Referenced by active_vars(), attach_quadrature_rules(), FEMContext(), find_hardest_fe_type(), init_internal_data(), and pre_fe_reinit().
|
protected |
Keep track of what type of algebra reinitialization is to be done.
Definition at line 1069 of file fem_context.h.
Referenced by algebraic_type(), and set_algebraic_type().
|
protected |
Saved reference to BoundaryInfo on the mesh for this System.
Used to answer boundary id requests.
Definition at line 1187 of file fem_context.h.
Referenced by has_side_boundary_id(), and side_boundary_ids().
|
protected |
Data with which to do algebra reinitialization.
Definition at line 1074 of file fem_context.h.
Referenced by pre_fe_reinit(), and set_custom_solution().
|
protected |
Cached dimension of largest dimension element in this mesh.
Definition at line 1197 of file fem_context.h.
Referenced by libMesh::DGFEMContext::DGFEMContext(), get_dim(), and get_elem_dim().
|
protectedinherited |
Global Degree of freedom index lists.
Definition at line 639 of file diff_context.h.
Referenced by libMesh::DiffContext::get_dof_indices(), and libMesh::DiffContext::n_dof_indices().
|
protectedinherited |
Definition at line 640 of file diff_context.h.
Referenced by libMesh::DiffContext::get_dof_indices(), libMesh::DiffContext::n_dof_indices(), and libMesh::DiffContext::n_vars().
|
protected |
Definition at line 1170 of file fem_context.h.
Referenced by attach_quadrature_rules(), edge_fe_reinit(), init_internal_data(), and set_jacobian_tolerance().
|
protected |
Definition at line 1181 of file fem_context.h.
Referenced by get_edge_fe(), and init_internal_data().
|
protected |
Quadrature rules for element edges.
If the FEM context is told to prepare for edge integration on 3D elements, it will try to find a quadrature rule that correctly integrates all variables. Because edge rules only apply to 3D elements, we don't need to worry about multiple dimensions
Definition at line 1233 of file fem_context.h.
Referenced by attach_quadrature_rules(), get_edge_qrule(), use_default_quadrature_rules(), and use_unweighted_quadrature_rules().
|
protected |
Current element for element_* to examine.
Definition at line 1192 of file fem_context.h.
Referenced by get_elem(), get_elem_dim(), has_elem(), and set_elem().
|
protected |
Cached dimension of this->_elem.
Definition at line 1202 of file fem_context.h.
Referenced by get_elem_dim(), and set_elem().
|
protected |
Cached dimensions of elements in the mesh, plus dimension 0 if SCALAR variables are in use.
Definition at line 1208 of file fem_context.h.
Referenced by attach_quadrature_rules(), elem_dimensions(), init_internal_data(), use_default_quadrature_rules(), and use_unweighted_quadrature_rules().
|
protectedinherited |
Element by element components of nonlinear_solution at a fixed point in a timestep, for optional use by e.g.
stabilized methods
Definition at line 604 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_fixed_solution().
|
protectedinherited |
Definition at line 605 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), fixed_point_gradient(), fixed_point_hessian(), fixed_point_value(), and libMesh::DiffContext::get_elem_fixed_solution().
|
protectedinherited |
Element jacobian: derivatives of elem_residual with respect to elem_solution.
Only initialized if _have_local_matrices
Definition at line 616 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_jacobian().
|
protectedinherited |
Element quantity of interest contributions.
Definition at line 621 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_qois().
|
protectedinherited |
Element quantity of interest derivative contributions.
Definition at line 626 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_qoi_derivatives().
|
protectedinherited |
Definition at line 627 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), libMesh::DiffContext::get_qoi_derivatives(), and pre_fe_reinit().
|
protectedinherited |
Element residual vector.
Definition at line 610 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_residual().
|
protectedinherited |
Element by element components of nonlinear_solution as adjusted by a time_solver.
Definition at line 582 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_solution().
|
protectedinherited |
Element by element components of du/dt as adjusted by a time_solver.
Definition at line 596 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_solution_accel().
|
protectedinherited |
Element by element components of du/dt as adjusted by a time_solver.
Definition at line 589 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_solution_rate().
|
protectedinherited |
Definition at line 634 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_jacobian().
|
protectedinherited |
Element residual subvectors and (if _have_local_matrices
) Jacobian submatrices.
Definition at line 633 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_residual().
|
protectedinherited |
Definition at line 597 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_solution_accel().
|
protectedinherited |
Definition at line 590 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_solution_rate().
|
protectedinherited |
Definition at line 583 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), libMesh::DiffContext::get_elem_solution(), interior_curl(), interior_div(), point_curl(), point_gradient(), point_hessian(), point_value(), and side_gradient().
|
protected |
Finite element objects for each variable's interior, sides and edges.
We store FE objects for each element dimension present in the mesh, except for edge_fe which only applies to 3D elements.
Definition at line 1168 of file fem_context.h.
Referenced by attach_quadrature_rules(), elem_fe_reinit(), init_internal_data(), and set_jacobian_tolerance().
|
protected |
Pointers to the same finite element objects, but indexed by variable number.
We store FE objects for each element dimension present in the mesh, except for edge_fe_var which only applies for 3D elements.
Definition at line 1179 of file fem_context.h.
Referenced by get_element_fe(), and init_internal_data().
|
protected |
Quadrature rule for element interior.
The FEM context will try to find a quadrature rule that correctly integrates all variables. We prepare quadrature rules for each element dimension in the mesh.
Definition at line 1216 of file fem_context.h.
Referenced by attach_quadrature_rules(), get_element_qrule(), use_default_quadrature_rules(), and use_unweighted_quadrature_rules().
|
protected |
The extra quadrature order for this context.
Definition at line 1238 of file fem_context.h.
Referenced by init_internal_data(), use_default_quadrature_rules(), and use_unweighted_quadrature_rules().
|
protectedinherited |
Whether we have local matrices allocated/initialized.
Definition at line 576 of file diff_context.h.
Referenced by libMesh::DiffContext::get_elem_jacobian(), and pre_fe_reinit().
|
protectedinherited |
Contains pointers to vectors the user has asked to be localized, keyed with pairs of element localized versions of that vector and per variable views.
Definition at line 571 of file diff_context.h.
Referenced by libMesh::DiffContext::add_localized_vector(), libMesh::DiffContext::get_localized_subvector(), libMesh::DiffContext::get_localized_vector(), and pre_fe_reinit().
|
protected |
System from which to acquire moving mesh information.
Definition at line 1059 of file fem_context.h.
Referenced by _do_elem_position_set(), elem_edge_reinit(), elem_position_get(), elem_position_set(), elem_reinit(), elem_side_reinit(), get_mesh_system(), and set_mesh_system().
|
protected |
Variables from which to acquire moving mesh information.
Definition at line 1064 of file fem_context.h.
Referenced by get_mesh_x_var(), and set_mesh_x_var().
|
protected |
Definition at line 1064 of file fem_context.h.
Referenced by get_mesh_y_var(), and set_mesh_y_var().
|
protected |
Definition at line 1064 of file fem_context.h.
Referenced by get_mesh_z_var(), and set_mesh_z_var().
|
mutableprotected |
Definition at line 1076 of file fem_context.h.
Referenced by cached_fe().
|
mutableprotected |
Definition at line 1078 of file fem_context.h.
Referenced by cached_fe().
|
mutableprotected |
Definition at line 1082 of file fem_context.h.
Referenced by cached_fe().
|
mutableprotected |
Definition at line 1077 of file fem_context.h.
Referenced by cached_fe().
|
mutableprotected |
Definition at line 1079 of file fem_context.h.
Referenced by cached_fe().
|
mutableprotected |
Definition at line 1083 of file fem_context.h.
Referenced by cached_fe().
|
protected |
Definition at line 1169 of file fem_context.h.
Referenced by attach_quadrature_rules(), init_internal_data(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), set_jacobian_tolerance(), and side_fe_reinit().
|
protected |
Definition at line 1180 of file fem_context.h.
Referenced by get_side_fe(), and init_internal_data().
|
protected |
Quadrature rules for element sides The FEM context will try to find a quadrature rule that correctly integrates all variables.
We prepare quadrature rules for each element dimension in the mesh.
Definition at line 1224 of file fem_context.h.
Referenced by attach_quadrature_rules(), get_side_qrule(), use_default_quadrature_rules(), and use_unweighted_quadrature_rules().
unsigned char libMesh::FEMContext::edge |
Current edge for edge_* to examine.
Definition at line 1018 of file fem_context.h.
Referenced by get_edge().
|
inherited |
The derivative of elem_solution_accel with respect to the current nonlinear solution, for use by systems with non default mass_residual terms.
Definition at line 510 of file diff_context.h.
Referenced by libMesh::NewmarkSolver::_general_residual(), libMesh::DiffContext::get_elem_solution_accel_derivative(), and libMesh::FirstOrderUnsteadySolver::prepare_accel().
|
inherited |
The derivative of elem_solution with respect to the current nonlinear solution.
Definition at line 496 of file diff_context.h.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), CoupledSystem::element_constraint(), libMesh::EigenTimeSolver::element_residual(), NavierSystem::element_time_derivative(), SolidSystem::element_time_derivative(), CoupledSystem::element_time_derivative(), libMesh::DiffContext::get_elem_solution_derivative(), and libMesh::EigenTimeSolver::side_residual().
|
inherited |
The derivative of elem_solution_rate with respect to the current nonlinear solution, for use by systems with non default mass_residual terms.
Definition at line 503 of file diff_context.h.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::NewmarkSolver::_general_residual(), libMesh::EigenTimeSolver::element_residual(), libMesh::DiffContext::get_elem_solution_rate_derivative(), libMesh::FEMPhysics::mass_residual(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), and libMesh::EigenTimeSolver::side_residual().
|
inherited |
The derivative of elem_fixed_solution with respect to the nonlinear solution, for use by systems constructing jacobians with elem_fixed_solution based methods.
Definition at line 517 of file diff_context.h.
Referenced by libMesh::EulerSolver::_general_residual(), libMesh::Euler2Solver::_general_residual(), libMesh::SteadySolver::_general_residual(), and libMesh::DiffContext::get_fixed_solution_derivative().
unsigned char libMesh::FEMContext::side |
Current side for side_* to examine.
Definition at line 1013 of file fem_context.h.
Referenced by libMesh::RBConstruction::add_scaled_matrix_and_vector(), assembly_with_dg_fem_context(), AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyA2::boundary_assembly(), AssemblyF2::boundary_assembly(), get_side(), has_side_boundary_id(), libMesh::RBEIMConstruction::initialize_qp_data(), and side_boundary_ids().
|
inherited |
This is the time stored in the System class at the time this context was created, i.e.
the time at the beginning of the current timestep. This value gets set in the constructor and unlike DiffContext::time, is not tweaked mid-timestep by transient solvers: it remains equal to the value it was assigned at construction.
Definition at line 490 of file diff_context.h.
Referenced by libMesh::DiffContext::get_system_time().
|
inherited |
For time-dependent problems, this is the time t for which the current nonlinear_solution is defined.
FIXME - this needs to be tweaked mid-timestep by all transient solvers!
Definition at line 481 of file diff_context.h.
Referenced by libMesh::DiffContext::get_time(), and libMesh::DiffContext::set_time().