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 std::map< const NumericVector< Number > *, std::pair< DenseVector< Number >, std::vector< std::unique_ptr< DenseSubVector< Number > > > > >::iterator | localized_vectors_iterator |
Typedef for the localized_vectors iterator. More... | |
Public Member Functions | |
FEMContext (const System &sys) | |
Constructor. More... | |
FEMContext (const System &sys, int extra_quadrature_order) | |
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... | |
std::vector< boundary_id_type > | side_boundary_ids () const |
Lists the boundary ids 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... | |
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... | |
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... | |
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... | |
template<typename OutputShape > | |
FEGenericBase< OutputShape > * | build_new_fe (const FEGenericBase< OutputShape > *fe, const Point &p, const Real tolerance=TOLERANCE) const |
Helper function to reduce some code duplication in the *_point_* methods. More... | |
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 | |
const typedef DenseSubVector< Number > &(DiffContext::* | diff_subsolution_getter )(unsigned int) const |
Helper typedef to simplify refactoring. 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 |
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 |
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... | |
template<> | |
FEGenericBase< Real > * | cached_fe (const unsigned int elem_dim, const FEType fe_type) const |
template<> | |
FEGenericBase< RealGradient > * | cached_fe (const unsigned int elem_dim, const FEType fe_type) const |
Protected Attributes | |
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 |
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< std::unique_ptr< 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... | |
DenseVector< Number > | _elem_solution |
Element by element components of nonlinear_solution as adjusted by a time_solver. More... | |
std::vector< std::unique_ptr< 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< std::unique_ptr< 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< std::unique_ptr< 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< std::unique_ptr< 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< std::unique_ptr< DenseSubVector< Number > > > > | _elem_qoi_subderivatives |
std::vector< std::unique_ptr< DenseSubVector< Number > > > | _elem_subresiduals |
Element residual subvectors and Jacobian submatrices. More... | |
std::vector< std::vector< std::unique_ptr< 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... | |
Private Attributes | |
Real * | _deltat |
Defaults to nullptr, can optionally be used to point to a timestep value in the System-derived class responsible for creating this DiffContext. More... | |
const System & | _system |
A reference to the system this context is constructed with. More... | |
bool | _is_adjoint |
Is this context to be used for a primal or adjoint solve? 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.
|
inherited |
Typedef for the localized_vectors iterator.
Definition at line 544 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 958 of file fem_context.h.
|
explicit |
Constructor.
Allocates some but fills no data structures.
Definition at line 37 of file fem_context.C.
References init_internal_data().
Constructor.
Specify the extra quadrature order instead of getting it from sys
.
Definition at line 58 of file fem_context.C.
References init_internal_data().
|
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 1566 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 1864 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().
|
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 119 of file diff_context.C.
References libMesh::DiffContext::_localized_vectors, and libMesh::System::n_vars().
|
inline |
Definition at line 979 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 112 of file fem_context.C.
References _edge_fe, _edge_qrule, _elem_dims, _element_fe, _element_qrule, _side_fe, _side_qrule, dim, libMesh::ReferenceElem::get(), libMesh::DiffContext::get_system(), libMesh::System::n_vars(), and libMesh::System::variable_type().
Referenced by use_default_quadrature_rules(), and use_unweighted_quadrature_rules().
template FEGenericBase< RealGradient > * libMesh::FEMContext::build_new_fe | ( | const FEGenericBase< OutputShape > * | fe, |
const Point & | p, | ||
const Real | tolerance = TOLERANCE |
||
) | const |
Helper function to reduce some code duplication in the *_point_* methods.
Definition at line 1952 of file fem_context.C.
References algebraic_type(), libMesh::Elem::dim(), libMesh::FEType::family, get_elem(), libMesh::FEAbstract::get_fe_type(), 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 |
|
protected |
Definition at line 1879 of file fem_context.C.
References _real_fe, _real_fe_is_inf, libMesh::FEGenericBase< OutputType >::build(), libMesh::FEGenericBase< OutputType >::build_InfFE(), get_elem(), has_elem(), and libMesh::Elem::infinite().
|
protected |
Definition at line 1915 of file fem_context.C.
References _real_grad_fe, _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 1473 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 938 of file fem_context.h.
References _elem_dims.
Referenced by libMesh::LaplacianErrorEstimator::init_context(), libMesh::DiscontinuityMeasure::init_context(), and libMesh::KellyErrorEstimator::init_context().
|
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 1411 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 1436 of file fem_context.C.
References _element_fe, dim, get_elem(), get_elem_dim(), has_elem(), and libMesh::libmesh_assert().
Referenced by libMesh::RBConstruction::add_scaled_matrix_and_vector(), assembly_with_dg_fem_context(), elem_reinit(), libMesh::RBEIMConstruction::enrich_RB_space(), libMesh::FEMSystem::mesh_position_set(), nonlocal_reinit(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), and libMesh::RBEIMConstruction::truth_solve().
void libMesh::FEMContext::elem_position_get | ( | ) |
Uses the geometry of elem
to set the coordinate data specified by mesh_*_position configuration.
Definition at line 1485 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 1238 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 1372 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 1396 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 80 of file fem_context.C.
References libMesh::FEType::family, libMesh::DiffContext::get_system(), 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 1041 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 1052 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 1068 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 1079 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 1018 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 1030 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 1214 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 1226 of file fem_context.C.
References libMesh::DiffContext::_elem_fixed_subsolutions, build_new_fe(), libMesh::DiffContext::get_dof_indices(), libMesh::FEGenericBase< OutputType >::get_dphi(), get_elem_dim(), and libMesh::DiffContext::get_elem_fixed_solution().
var
at the physical point p
on the current element.Definition at line 1265 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 1277 of file fem_context.C.
References libMesh::DiffContext::_elem_fixed_subsolutions, build_new_fe(), libMesh::FEGenericBase< OutputType >::get_d2phi(), 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 1168 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 1178 of file fem_context.C.
References libMesh::DiffContext::_elem_fixed_subsolutions, build_new_fe(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), libMesh::DiffContext::get_elem_fixed_solution(), and libMesh::FEGenericBase< OutputType >::get_phi().
var
at the quadrature point qp
on the current element side.Definition at line 1118 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 1129 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 1143 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 1153 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 1094 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 1105 of file fem_context.C.
References libMesh::DiffContext::get_elem_fixed_solution(), get_side_fe(), and some_value().
|
inherited |
_deltat
member Definition at line 111 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 924 of file fem_context.h.
References _dim.
Referenced by get_element_fe(), get_side_fe(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), and SolidSystem::side_time_derivative().
|
inlineinherited |
Non-const accessor for element dof indices.
Definition at line 373 of file diff_context.h.
References libMesh::DiffContext::_dof_indices.
|
inlineinherited |
Accessor for element dof indices.
Definition at line 367 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(), AssemblyF0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyF2::boundary_assembly(), A2::boundary_assembly(), AssemblyA2::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(), EIM_IP_assembly::interior_assembly(), AcousticsInnerProduct::interior_assembly(), AssemblyA1::interior_assembly(), A2::interior_assembly(), AssemblyA2::interior_assembly(), EIM_F::interior_assembly(), F0::interior_assembly(), OutputAssembly::interior_assembly(), InnerProductAssembly::interior_assembly(), AssemblyEIM::interior_assembly(), AssemblyF0::interior_assembly(), AssemblyF1::interior_assembly(), Ex6InnerProduct::interior_assembly(), Ex6EIMInnerProduct::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(), some_value(), and libMesh::RBEIMConstruction::truth_solve().
|
inlineinherited |
Accessor for element dof indices of a particular variable corresponding to the index argument.
Definition at line 390 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 380 of file diff_context.h.
References libMesh::DiffContext::_dof_indices_var.
|
inline |
Accessor for current edge of Elem object.
Definition at line 916 of file fem_context.h.
References edge.
Referenced by edge_fe_reinit().
Accessor for edge (3D only!) finite element object for scalar-valued variable var.
Definition at line 1289 of file fem_context.h.
References _edge_fe_var.
|
inline |
Accessor for edge (3D only!) finite element object for variable var.
Definition at line 1282 of file fem_context.h.
References _edge_fe_var.
|
inline |
Accessor for element edge quadrature rule.
Definition at line 819 of file fem_context.h.
References _edge_qrule.
|
inline |
Accessor for current Elem object.
Definition at line 903 of file fem_context.h.
References _elem, and libMesh::libmesh_assert().
|
inline |
Accessor for current Elem object.
Definition at line 896 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(), AssemblyF0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyF2::boundary_assembly(), AssemblyA2::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(), L2System::element_time_derivative(), libMesh::OldSolutionCoefs< Output, point_output >::eval_at_node(), libMesh::OldSolutionValue< Output, point_output >::eval_at_node(), has_side_boundary_id(), A0::interior_assembly(), A1::interior_assembly(), EIM_F::interior_assembly(), OutputAssembly::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 |
Definition at line 931 of file fem_context.h.
References _elem_dim.
Referenced by _do_elem_position_set(), edge_fe_reinit(), elem_fe_reinit(), elem_position_get(), fixed_point_gradient(), fixed_point_hessian(), fixed_point_value(), get_element_qrule(), get_side_qrule(), interior_curl(), interior_div(), interior_gradients(), interior_hessians(), interior_values(), point_curl(), point_gradient(), point_hessian(), point_value(), side_fe_reinit(), side_gradient(), side_gradients(), side_hessians(), side_values(), some_gradient(), some_hessian(), and some_value().
|
inlineinherited |
Non-const accessor for element fixed solution.
Definition at line 221 of file diff_context.h.
References libMesh::DiffContext::_elem_fixed_solution.
|
inlineinherited |
Accessor for element fixed solution.
Definition at line 215 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 |
Accessor for element fixed solution of a particular variable corresponding to the variable index argument.
Definition at line 239 of file diff_context.h.
References libMesh::DiffContext::_elem_fixed_subsolutions, and libMesh::libmesh_assert().
|
inlineinherited |
Accessor for element fixed solution of a particular variable corresponding to the variable index argument.
Definition at line 228 of file diff_context.h.
References libMesh::DiffContext::_elem_fixed_subsolutions, and libMesh::libmesh_assert().
|
inlineinherited |
Non-const accessor for element Jacobian.
Definition at line 289 of file diff_context.h.
References libMesh::DiffContext::_elem_jacobian.
|
inlineinherited |
Const accessor for element Jacobian.
Definition at line 283 of file diff_context.h.
References libMesh::DiffContext::_elem_jacobian.
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(), A2::boundary_assembly(), AssemblyA2::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(), PoissonSystem::element_time_derivative(), LaplaceSystem::element_time_derivative(), CurlCurlSystem::element_time_derivative(), ElasticitySystem::element_time_derivative(), L2System::element_time_derivative(), CoupledSystem::element_time_derivative(), B::interior_assembly(), A0::interior_assembly(), M0::interior_assembly(), A1::interior_assembly(), AssemblyA0::interior_assembly(), EIM_IP_assembly::interior_assembly(), AcousticsInnerProduct::interior_assembly(), AssemblyA1::interior_assembly(), A2::interior_assembly(), AssemblyA2::interior_assembly(), InnerProductAssembly::interior_assembly(), AssemblyEIM::interior_assembly(), Ex6InnerProduct::interior_assembly(), Ex6EIMInnerProduct::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 of particular variables corresponding to the variable index arguments.
Definition at line 308 of file diff_context.h.
References libMesh::DiffContext::_elem_subjacobians, and libMesh::libmesh_assert().
|
inlineinherited |
Const accessor for element Jacobian of particular variables corresponding to the variable index arguments.
Definition at line 296 of file diff_context.h.
References libMesh::DiffContext::_elem_subjacobians, and libMesh::libmesh_assert().
|
inlineinherited |
Non-const accessor for element residual.
Definition at line 255 of file diff_context.h.
References libMesh::DiffContext::_elem_residual.
|
inlineinherited |
Const accessor for element residual.
Definition at line 249 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(), L2System::element_time_derivative(), CoupledSystem::element_time_derivative(), FirstOrderScalarSystemBase::element_time_derivative(), SecondOrderScalarSystemFirstOrderTimeSolverBase::element_time_derivative(), EIM_F::interior_assembly(), F0::interior_assembly(), OutputAssembly::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(), ElasticitySystem::side_time_derivative(), and libMesh::RBEIMConstruction::truth_solve().
|
inlineinherited |
Non-const accessor for element residual of a particular variable corresponding to the variable index argument.
Definition at line 273 of file diff_context.h.
References libMesh::DiffContext::_elem_subresiduals, and libMesh::libmesh_assert().
|
inlineinherited |
Const accessor for element residual of a particular variable corresponding to the variable index argument.
Definition at line 262 of file diff_context.h.
References libMesh::DiffContext::_elem_subresiduals, and libMesh::libmesh_assert().
|
inlineinherited |
Non-const accessor for element solution.
Definition at line 117 of file diff_context.h.
References libMesh::DiffContext::_elem_solution.
|
inlineinherited |
Accessor for element solution.
Definition at line 111 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 |
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, and libMesh::libmesh_assert().
|
inlineinherited |
Accessor for element solution of a particular variable corresponding to the variable index argument.
Definition at line 124 of file diff_context.h.
References libMesh::DiffContext::_elem_subsolutions, and libMesh::libmesh_assert().
|
inlineinherited |
Non-const accessor for element solution accel of change w.r.t.
time.
Definition at line 187 of file diff_context.h.
References libMesh::DiffContext::_elem_solution_accel.
|
inlineinherited |
Accessor for element solution accel of change w.r.t.
time.
Definition at line 180 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 |
Accessor for element solution accel for a particular variable corresponding to the variable index argument.
Definition at line 205 of file diff_context.h.
References libMesh::DiffContext::_elem_subsolution_accels, and libMesh::libmesh_assert().
|
inlineinherited |
Accessor for element solution accel for a particular variable corresponding to the variable index argument.
Definition at line 194 of file diff_context.h.
References libMesh::DiffContext::_elem_subsolution_accels, and libMesh::libmesh_assert().
|
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 454 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 436 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(), L2System::element_time_derivative(), NavierSystem::mass_residual(), and NavierSystem::side_constraint().
|
inlineinherited |
Non-const accessor for element solution rate of change w.r.t.
time.
Definition at line 152 of file diff_context.h.
References libMesh::DiffContext::_elem_solution_rate.
|
inlineinherited |
Accessor for element solution rate of change w.r.t.
time.
Definition at line 145 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 |
Accessor for element solution rate for a particular variable corresponding to the variable index argument.
Definition at line 170 of file diff_context.h.
References libMesh::DiffContext::_elem_subsolution_rates, and libMesh::libmesh_assert().
|
inlineinherited |
Accessor for element solution rate for a particular variable corresponding to the variable index argument.
Definition at line 159 of file diff_context.h.
References libMesh::DiffContext::_elem_subsolution_rates, and libMesh::libmesh_assert().
|
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 445 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().
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 because this method may be called before the Elem * is set in the FEMContext, e.g. in FEMSystem::init_context (or a subclass). If you have lower dimensional elements in the mesh and need to query for those FE objects, use the alternative get_element_fe method.
Definition at line 286 of file fem_context.h.
References get_dim(), and get_element_fe().
|
inline |
Accessor for interior finite element object for variable var for the largest dimension in the mesh.
We default to the largest mesh dim because this method may be called before the Elem * is set in the FEMContext, e.g. in FEMSystem::init_context (or a subclass). If you have lower dimensional elements in the mesh and need to query for those FE objects, use the alternative get_element_fe method.
Definition at line 275 of file fem_context.h.
References get_dim().
Referenced by _do_elem_position_set(), libMesh::RBConstruction::add_scaled_matrix_and_vector(), assembly_with_dg_fem_context(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), elem_position_get(), NavierSystem::element_constraint(), CoupledSystem::element_constraint(), PoissonSystem::element_postprocess(), LaplaceSystem::element_postprocess(), LaplaceQoI::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(), L2System::element_time_derivative(), CoupledSystem::element_time_derivative(), libMesh::RBEIMConstruction::enrich_RB_space(), fixed_interior_gradient(), fixed_interior_hessian(), fixed_interior_value(), get_element_fe(), LaplaceQoI::init_context(), NavierSystem::init_context(), SolidSystem::init_context(), LaplaceSystem::init_context(), PoissonSystem::init_context(), CurlCurlSystem::init_context(), ElasticitySystem::init_context(), L2System::init_context(), CoupledSystem::init_context(), libMesh::ParsedFEMFunction< T >::init_context(), ElasticityRBConstruction::init_context(), SimpleRBConstruction::init_context(), libMesh::FEMSystem::init_context(), libMesh::RBEIMConstruction::init_context_with_sys(), interior_accel(), B::interior_assembly(), A0::interior_assembly(), M0::interior_assembly(), A1::interior_assembly(), AssemblyA0::interior_assembly(), EIM_IP_assembly::interior_assembly(), AcousticsInnerProduct::interior_assembly(), AssemblyA1::interior_assembly(), A2::interior_assembly(), AssemblyA2::interior_assembly(), EIM_F::interior_assembly(), F0::interior_assembly(), OutputAssembly::interior_assembly(), InnerProductAssembly::interior_assembly(), AssemblyEIM::interior_assembly(), AssemblyF0::interior_assembly(), AssemblyF1::interior_assembly(), Ex6InnerProduct::interior_assembly(), Ex6EIMInnerProduct::interior_assembly(), interior_gradient(), interior_hessian(), interior_rate(), interior_rate_gradient(), NavierSystem::mass_residual(), ElasticitySystem::mass_residual(), libMesh::FEMPhysics::mass_residual(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), NavierSystem::side_constraint(), and libMesh::RBEIMConstruction::truth_solve().
|
inline |
Accessor for interior finite element object for variable var for dimension dim.
Definition at line 1246 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 1255 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 790 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(), 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(), L2System::element_time_derivative(), CoupledSystem::element_time_derivative(), FirstOrderScalarSystemBase::element_time_derivative(), SecondOrderScalarSystemFirstOrderTimeSolverBase::element_time_derivative(), libMesh::RBEIMConstruction::enrich_RB_space(), libMesh::FEMPhysics::eulerian_residual(), A0::interior_assembly(), B::interior_assembly(), M0::interior_assembly(), A1::interior_assembly(), AssemblyA0::interior_assembly(), EIM_IP_assembly::interior_assembly(), AcousticsInnerProduct::interior_assembly(), AssemblyA1::interior_assembly(), A2::interior_assembly(), AssemblyA2::interior_assembly(), EIM_F::interior_assembly(), F0::interior_assembly(), OutputAssembly::interior_assembly(), InnerProductAssembly::interior_assembly(), AssemblyEIM::interior_assembly(), AssemblyF0::interior_assembly(), AssemblyF1::interior_assembly(), Ex6InnerProduct::interior_assembly(), Ex6EIMInnerProduct::interior_assembly(), NavierSystem::mass_residual(), ElasticitySystem::mass_residual(), libMesh::FEMPhysics::mass_residual(), FirstOrderScalarSystemBase::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual(), and libMesh::RBEIMConstruction::truth_solve().
|
inline |
Accessor for element interior quadrature rule.
Definition at line 803 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 463 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 148 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 154 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 134 of file diff_context.C.
References libMesh::DiffContext::_localized_vectors.
|
inherited |
const accessible version of get_localized_vector function
Definition at line 140 of file diff_context.C.
References libMesh::DiffContext::_localized_vectors, and libMesh::libmesh_assert().
|
inline |
Accessor for moving mesh System.
Definition at line 842 of file fem_context.h.
References _mesh_sys.
|
inline |
Accessor for moving mesh System.
Definition at line 836 of file fem_context.h.
References _mesh_sys.
|
inline |
Accessor for x-variable of moving mesh System.
Definition at line 848 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 862 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 876 of file fem_context.h.
References _mesh_z_var.
Referenced by _do_elem_position_set(), and elem_position_get().
|
inlineinherited |
Non-const accessor for QoI derivatives.
Definition at line 337 of file diff_context.h.
References libMesh::DiffContext::_elem_qoi_derivative.
|
inlineinherited |
Const accessor for QoI derivatives.
Definition at line 331 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 derivative of a particular qoi and variable corresponding to the index arguments.
Definition at line 356 of file diff_context.h.
References libMesh::DiffContext::_elem_qoi_subderivatives, and libMesh::libmesh_assert().
|
inlineinherited |
Const accessor for QoI derivative of a particular qoi and variable corresponding to the index arguments.
Definition at line 344 of file diff_context.h.
References libMesh::DiffContext::_elem_qoi_subderivatives, and libMesh::libmesh_assert().
|
inlineinherited |
Non-const accessor for QoI vector.
Definition at line 325 of file diff_context.h.
References libMesh::DiffContext::_elem_qoi.
|
inlineinherited |
Const accessor for QoI vector.
Definition at line 319 of file diff_context.h.
References libMesh::DiffContext::_elem_qoi.
Referenced by LaplaceQoI::element_qoi(), and CoupledSystemQoI::side_qoi().
|
inline |
Accessor for current side of Elem object.
Definition at line 910 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().
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 because this method may be called before the Elem * is set in the FEMContext, e.g. in FEMSystem::init_context (or a subclass). If you have lower dimensional elements in the mesh and need to query for those FE objects, use the alternative get_side_fe method.
Definition at line 323 of file fem_context.h.
References get_dim(), and get_side_fe().
|
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 because this method may be called before the Elem * is set in the FEMContext, e.g. in FEMSystem::init_context (or a subclass). If you have lower dimensional elements in the mesh and need to query for those FE objects, use the alternative get_side_fe method.
Definition at line 312 of file fem_context.h.
References get_dim().
Referenced by assembly_with_dg_fem_context(), AssemblyA0::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyF2::boundary_assembly(), A2::boundary_assembly(), AssemblyA2::boundary_assembly(), A3::boundary_assembly(), F0::boundary_assembly(), Output0::boundary_assembly(), libMesh::ParsedFEMFunction< T >::eval_args(), fixed_side_gradient(), fixed_side_hessian(), fixed_side_value(), get_side_fe(), NavierSystem::init_context(), SolidSystem::init_context(), PoissonSystem::init_context(), LaplaceSystem::init_context(), CurlCurlSystem::init_context(), ElasticitySystem::init_context(), CoupledSystem::init_context(), libMesh::ParsedFEMFunction< T >::init_context(), SimpleRBConstruction::init_context(), 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().
|
inline |
Accessor for edge/face (2D/3D) finite element object for variable var for dimension dim.
Definition at line 1264 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 1273 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 797 of file fem_context.h.
References get_elem_dim().
Referenced by assembly_with_dg_fem_context(), AssemblyA0::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyF2::boundary_assembly(), A2::boundary_assembly(), AssemblyA2::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 810 of file fem_context.h.
References _side_qrule, dim, and libMesh::libmesh_assert().
|
inlineinherited |
Accessor for associated system.
Definition at line 105 of file diff_context.h.
References libMesh::DiffContext::_system.
Referenced by attach_quadrature_rules(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), HeatSystem::element_qoi_derivative(), find_hardest_fe_type(), 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 415 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 421 of file diff_context.h.
References libMesh::DiffContext::time.
|
inline |
Test for current Elem object.
Definition at line 890 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 254 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 176 of file fem_context.C.
References _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::libmesh_assert(), libMesh::System::n_vars(), libMesh::SCALAR, use_default_quadrature_rules(), and libMesh::System::variable_type().
Referenced by FEMContext().
template 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 1349 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 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 557 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 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 588 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 426 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(), 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 439 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution(), get_element_fe(), and some_gradient().
template 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 453 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 491 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 501 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution(), get_element_fe(), and some_hessian().
template 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 515 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 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 1318 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 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 1328 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 371 of file fem_context.C.
Referenced by libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), LaplaceSystem::element_postprocess(), LaplaceQoI::element_qoi(), NavierSystem::element_time_derivative(), CurlCurlSystem::element_time_derivative(), L2System::element_time_derivative(), CoupledSystem::element_time_derivative(), and libMesh::RBEIMConstruction::enrich_RB_space().
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 381 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution(), and some_value().
template 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 391 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 setting whether we need to do a primal or adjoint solve.
Definition at line 477 of file diff_context.h.
References libMesh::DiffContext::_is_adjoint.
|
inlineinherited |
Accessor for querying whether we need to do a primal or adjoint solve.
Definition at line 470 of file diff_context.h.
References libMesh::DiffContext::_is_adjoint.
Referenced by libMesh::FEMSystem::build_context().
|
inlineinherited |
Total number of dof indices on the element.
Definition at line 399 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(), L2System::element_time_derivative(), CoupledSystem::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 406 of file diff_context.h.
References libMesh::DiffContext::_dof_indices_var.
|
inlineinherited |
Number of variables in solution.
Definition at line 99 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::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 1426 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 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 982 of file fem_context.C.
References libMesh::DiffContext::_elem_subsolutions, build_new_fe(), libMesh::FEGenericBase< OutputType >::get_curl_phi(), 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 879 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 891 of file fem_context.C.
References libMesh::DiffContext::_elem_subsolutions, build_new_fe(), libMesh::DiffContext::get_dof_indices(), libMesh::FEGenericBase< OutputType >::get_dphi(), get_elem_dim(), and libMesh::DiffContext::get_elem_solution().
var
at the physical point p
on the current element.Definition at line 931 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 942 of file fem_context.C.
References libMesh::DiffContext::_elem_subsolutions, build_new_fe(), libMesh::FEGenericBase< OutputType >::get_d2phi(), 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 833 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 843 of file fem_context.C.
References libMesh::DiffContext::_elem_subsolutions, build_new_fe(), libMesh::DiffContext::get_dof_indices(), get_elem_dim(), libMesh::DiffContext::get_elem_solution(), and libMesh::FEGenericBase< OutputType >::get_phi().
Reinitializes local data vectors/matrices on the current geometric element.
Definition at line 1642 of file fem_context.C.
References _custom_solution, libMesh::DiffContext::_elem_qoi_subderivatives, 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::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::RBConstruction::add_scaled_matrix_and_vector(), libMesh::FEMSystem::assembly(), assembly_with_dg_fem_context(), L2System::element_time_derivative(), libMesh::RBEIMConstruction::enrich_RB_space(), libMesh::FEMSystem::mesh_position_get(), libMesh::FEMSystem::mesh_position_set(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::System::project_vector(), OverlappingAlgebraicGhostingTest::run_ghosting_test(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), and libMesh::RBEIMConstruction::truth_solve().
|
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 973 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 988 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 103 of file diff_context.C.
References libMesh::DiffContext::_deltat.
Referenced by libMesh::FEMSystem::build_context(), libMesh::DifferentiableSystem::build_context(), and libMesh::FEMSystem::init_context().
|
protected |
Helper function to promote accessor usage.
Definition at line 1855 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 1545 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 830 of file fem_context.h.
References _mesh_sys.
Referenced by libMesh::FEMSystem::build_context().
|
inline |
Accessor for x-variable of moving mesh System.
This should be set automatically if the FEMPhysics requires it.
Definition at line 856 of file fem_context.h.
References _mesh_x_var.
Referenced by libMesh::FEMSystem::build_context().
|
inline |
Accessor for y-variable of moving mesh System.
This should be set automatically if the FEMPhysics requires it.
Definition at line 870 of file fem_context.h.
References _mesh_y_var.
Referenced by libMesh::FEMSystem::build_context().
|
inline |
Accessor for z-variable of moving mesh System.
This should be set automatically if the FEMPhysics requires it.
Definition at line 884 of file fem_context.h.
References _mesh_z_var.
Referenced by libMesh::FEMSystem::build_context().
|
inlineinherited |
Set the time for which the current nonlinear_solution is defined.
Definition at line 427 of file diff_context.h.
References libMesh::DiffContext::time.
Referenced by _update_time_from_system().
template 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 1361 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution_accel(), get_side_fe(), and some_value().
std::vector< boundary_id_type > libMesh::FEMContext::side_boundary_ids | ( | ) | const |
Lists the boundary ids found on the current side.
Definition at line 261 of file fem_context.C.
References _boundary_info, libMesh::BoundaryInfo::boundary_ids(), get_elem(), and side.
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 269 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 1457 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 678 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 689 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 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 723 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 761 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 774 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution(), get_side_fe(), and some_hessian().
template 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 790 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 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 1339 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 620 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 632 of file fem_context.C.
References libMesh::DiffContext::get_elem_solution(), and some_value().
template 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 643 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 308 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 341 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 279 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 134 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 155 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 |
Keep track of what type of algebra reinitialization is to be done.
Definition at line 1040 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 1155 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 1045 of file fem_context.h.
Referenced by pre_fe_reinit(), and set_custom_solution().
|
privateinherited |
Defaults to nullptr, can optionally be used to point to a timestep value in the System-derived class responsible for creating this DiffContext.
In DiffSystem's build_context() function, is assigned to point to the deltat member of that class.
Accessible via public get_deltat()/set_deltat() methods of this class.
Always test for nullptr before using!
Definition at line 653 of file diff_context.h.
Referenced by libMesh::DiffContext::get_deltat_value(), and libMesh::DiffContext::set_deltat_pointer().
|
protected |
Cached dimension of largest dimension element in this mesh.
Definition at line 1165 of file fem_context.h.
Referenced by libMesh::DGFEMContext::DGFEMContext(), and get_dim().
|
protectedinherited |
Global Degree of freedom index lists.
Definition at line 637 of file diff_context.h.
Referenced by libMesh::DiffContext::get_dof_indices(), and libMesh::DiffContext::n_dof_indices().
|
protectedinherited |
Definition at line 638 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 1138 of file fem_context.h.
Referenced by attach_quadrature_rules(), edge_fe_reinit(), init_internal_data(), and set_jacobian_tolerance().
|
protected |
Definition at line 1149 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 1201 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 1160 of file fem_context.h.
Referenced by get_elem(), has_elem(), and set_elem().
|
protected |
Cached dimension of this->_elem.
Definition at line 1170 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 1176 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 603 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_fixed_solution().
|
protectedinherited |
Definition at line 604 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.
Definition at line 615 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 620 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 625 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_qoi_derivatives().
|
protectedinherited |
Definition at line 626 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 609 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 581 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 595 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 588 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_solution_rate().
|
protectedinherited |
Definition at line 632 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_jacobian().
|
protectedinherited |
Element residual subvectors and Jacobian submatrices.
Definition at line 631 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_residual().
|
protectedinherited |
Definition at line 596 of file diff_context.h.
Referenced by libMesh::DiffContext::DiffContext(), and libMesh::DiffContext::get_elem_solution_accel().
|
protectedinherited |
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 582 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 1136 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 1147 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 1184 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 1206 of file fem_context.h.
Referenced by init_internal_data(), use_default_quadrature_rules(), and use_unweighted_quadrature_rules().
|
privateinherited |
Is this context to be used for a primal or adjoint solve?
Definition at line 663 of file diff_context.h.
Referenced by libMesh::DiffContext::is_adjoint().
|
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 575 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().
System* libMesh::FEMContext::_mesh_sys |
System from which to acquire moving mesh information.
Definition at line 1000 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().
unsigned int libMesh::FEMContext::_mesh_x_var |
Variables from which to acquire moving mesh information.
Definition at line 1005 of file fem_context.h.
Referenced by get_mesh_x_var(), and set_mesh_x_var().
unsigned int libMesh::FEMContext::_mesh_y_var |
Definition at line 1005 of file fem_context.h.
Referenced by get_mesh_y_var(), and set_mesh_y_var().
unsigned int libMesh::FEMContext::_mesh_z_var |
Definition at line 1005 of file fem_context.h.
Referenced by get_mesh_z_var(), and set_mesh_z_var().
|
mutableprotected |
Definition at line 1047 of file fem_context.h.
Referenced by cached_fe().
|
mutableprotected |
Definition at line 1051 of file fem_context.h.
Referenced by cached_fe().
|
mutableprotected |
Definition at line 1048 of file fem_context.h.
Referenced by cached_fe().
|
mutableprotected |
Definition at line 1052 of file fem_context.h.
Referenced by cached_fe().
|
protected |
Definition at line 1137 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 1148 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 1192 of file fem_context.h.
Referenced by attach_quadrature_rules(), get_side_qrule(), use_default_quadrature_rules(), and use_unweighted_quadrature_rules().
|
privateinherited |
A reference to the system this context is constructed with.
Definition at line 658 of file diff_context.h.
Referenced by libMesh::DiffContext::get_system().
const typedef DenseSubVector<Number>&(DiffContext::* libMesh::FEMContext::diff_subsolution_getter) (unsigned int) const |
Helper typedef to simplify refactoring.
Definition at line 1071 of file fem_context.h.
unsigned char libMesh::FEMContext::edge |
Current edge for edge_* to examine.
Definition at line 1015 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 514 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 500 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 507 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 521 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 1010 of file fem_context.h.
Referenced by libMesh::RBConstruction::add_scaled_matrix_and_vector(), assembly_with_dg_fem_context(), AssemblyA0::boundary_assembly(), AssemblyF0::boundary_assembly(), AssemblyA1::boundary_assembly(), AssemblyF1::boundary_assembly(), AssemblyF2::boundary_assembly(), AssemblyA2::boundary_assembly(), get_side(), has_side_boundary_id(), 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 494 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 485 of file diff_context.h.
Referenced by libMesh::DiffContext::get_time(), and libMesh::DiffContext::set_time().