libMesh
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
libMesh::DGFEMContext Class Reference

This class extends FEMContext in order to provide extra data required to perform local element residual and Jacobian assembly in the case of a discontinuous Galerkin (DG) discretization. More...

#include <dg_fem_context.h>

Inheritance diagram for libMesh::DGFEMContext:
[legend]

Public Types

enum  AlgebraicType {
  NONE = 0, DOFS_ONLY, CURRENT, OLD,
  OLD_DOFS_ONLY
}
 Enum describing what data to use when initializing algebraic structures on each element. More...
 
typedef const DenseSubVector< Number > &(DiffContext::* diff_subsolution_getter) (unsigned int) const
 Helper typedef to simplify refactoring. More...
 
typedef std::map< const NumericVector< Number > *, std::pair< DenseVector< Number >, std::vector< std::unique_ptr< DenseSubVector< Number > > > > >::iterator localized_vectors_iterator
 Typedef for the localized_vectors iterator. More...
 

Public Member Functions

 DGFEMContext (const System &sys)
 Constructor. More...
 
virtual ~DGFEMContext ()
 Destructor. More...
 
virtual void side_fe_reinit () override
 Override side_fe_reinit to set a boolean flag so that by default DG terms are assumed to be inactive. More...
 
void neighbor_side_fe_reinit ()
 Initialize neighbor side data needed to assemble DG terms. More...
 
const std::vector< dof_id_type > & get_neighbor_dof_indices () const
 Accessor for neighbor dof indices. More...
 
const std::vector< dof_id_type > & get_neighbor_dof_indices (unsigned int var) const
 Accessor for element dof indices of a particular variable corresponding to the index argument. More...
 
const DenseVector< Number > & get_neighbor_residual () const
 Const accessor for neighbor residual. More...
 
DenseVector< Number > & get_neighbor_residual ()
 Non-const accessor for neighbor residual. More...
 
const DenseSubVector< Number > & get_neighbor_residual (unsigned int var) const
 Const accessor for neighbor residual of a particular variable corresponding to the variable index argument. More...
 
DenseSubVector< Number > & get_neighbor_residual (unsigned int var)
 Non-const accessor for neighbor residual of a particular variable corresponding to the variable index argument. More...
 
const DenseMatrix< Number > & get_elem_elem_jacobian () const
 Const accessor for element-element Jacobian. More...
 
DenseMatrix< Number > & get_elem_elem_jacobian ()
 Non-const accessor for element-element Jacobian. More...
 
const DenseSubMatrix< Number > & get_elem_elem_jacobian (unsigned int var1, unsigned int var2) const
 Const accessor for element-element Jacobian of particular variables corresponding to the variable index arguments. More...
 
DenseSubMatrix< Number > & get_elem_elem_jacobian (unsigned int var1, unsigned int var2)
 Non-const accessor for element-element Jacobian of particular variables corresponding to the variable index arguments. More...
 
const DenseMatrix< Number > & get_elem_neighbor_jacobian () const
 Const accessor for element-neighbor Jacobian. More...
 
DenseMatrix< Number > & get_elem_neighbor_jacobian ()
 Non-const accessor for element -neighborJacobian. More...
 
const DenseSubMatrix< Number > & get_elem_neighbor_jacobian (unsigned int var1, unsigned int var2) const
 Const accessor for element-neighbor Jacobian of particular variables corresponding to the variable index arguments. More...
 
DenseSubMatrix< Number > & get_elem_neighbor_jacobian (unsigned int var1, unsigned int var2)
 Non-const accessor for element-neighbor Jacobian of particular variables corresponding to the variable index arguments. More...
 
const DenseMatrix< Number > & get_neighbor_elem_jacobian () const
 Const accessor for element-neighbor Jacobian. More...
 
DenseMatrix< Number > & get_neighbor_elem_jacobian ()
 Non-const accessor for element Jacobian. More...
 
const DenseSubMatrix< Number > & get_neighbor_elem_jacobian (unsigned int var1, unsigned int var2) const
 Const accessor for neighbor-element Jacobian of particular variables corresponding to the variable index arguments. More...
 
DenseSubMatrix< Number > & get_neighbor_elem_jacobian (unsigned int var1, unsigned int var2)
 Non-const accessor for neighbor-element Jacobian of particular variables corresponding to the variable index arguments. More...
 
const DenseMatrix< Number > & get_neighbor_neighbor_jacobian () const
 Const accessor for element-neighbor Jacobian. More...
 
DenseMatrix< Number > & get_neighbor_neighbor_jacobian ()
 Non-const accessor for element Jacobian. More...
 
const DenseSubMatrix< Number > & get_neighbor_neighbor_jacobian (unsigned int var1, unsigned int var2) const
 Const accessor for neighbor-neighbor Jacobian of particular variables corresponding to the variable index arguments. More...
 
DenseSubMatrix< Number > & get_neighbor_neighbor_jacobian (unsigned int var1, unsigned int var2)
 Non-const accessor for neighbor-neighbor Jacobian of particular variables corresponding to the variable index arguments. More...
 
void set_neighbor (const Elem &neighbor)
 Set the neighbor element which we will use to assemble DG terms. More...
 
const Elemget_neighbor () const
 Accessor for current neighbor Elem object for assembling DG terms. More...
 
bool dg_terms_are_active () const
 Are the DG terms active, i.e. More...
 
template<typename OutputShape >
void get_neighbor_side_fe (unsigned int var, FEGenericBase< OutputShape > *&fe) const
 Accessor for neighbor edge/face (2D/3D) finite element object for variable var. 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_typeside_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
 
template<typename OutputType >
void interior_value (unsigned int var, unsigned int qp, OutputType &u) const
 
Number side_value (unsigned int var, unsigned int qp) const
 
template<typename OutputType >
void side_value (unsigned int var, unsigned int qp, OutputType &u) const
 
Number point_value (unsigned int var, const Point &p) const
 
template<typename OutputType >
void point_value (unsigned int var, const Point &p, OutputType &u, const Real tolerance=TOLERANCE) const
 
Gradient interior_gradient (unsigned int var, unsigned int qp) const
 
template<typename OutputType >
void interior_gradient (unsigned int var, unsigned int qp, OutputType &du) const
 
Gradient side_gradient (unsigned int var, unsigned int qp) const
 
template<typename OutputType >
void side_gradient (unsigned int var, unsigned int qp, OutputType &du) const
 
Gradient point_gradient (unsigned int var, const Point &p) const
 
template<typename OutputType >
void point_gradient (unsigned int var, const Point &p, OutputType &grad_u, const Real tolerance=TOLERANCE) const
 
Tensor interior_hessian (unsigned int var, unsigned int qp) const
 
template<typename OutputType >
void interior_hessian (unsigned int var, unsigned int qp, OutputType &d2u) const
 
Tensor side_hessian (unsigned int var, unsigned int qp) const
 
template<typename OutputType >
void side_hessian (unsigned int var, unsigned int qp, OutputType &d2u) const
 
Tensor point_hessian (unsigned int var, const Point &p) const
 
template<typename OutputType >
void point_hessian (unsigned int var, const Point &p, OutputType &hess_u, const Real tolerance=TOLERANCE) const
 
Number fixed_interior_value (unsigned int var, unsigned int qp) const
 
template<typename OutputType >
void fixed_interior_value (unsigned int var, unsigned int qp, OutputType &u) const
 
Number fixed_side_value (unsigned int var, unsigned int qp) const
 
template<typename OutputType >
void fixed_side_value (unsigned int var, unsigned int qp, OutputType &u) const
 
Number fixed_point_value (unsigned int var, const Point &p) const
 
template<typename OutputType >
void fixed_point_value (unsigned int var, const Point &p, OutputType &u, const Real tolerance=TOLERANCE) const
 
Gradient fixed_interior_gradient (unsigned int var, unsigned int qp) const
 
template<typename OutputType >
void fixed_interior_gradient (unsigned int var, unsigned int qp, OutputType &grad_u) const
 
Gradient fixed_side_gradient (unsigned int var, unsigned int qp) const
 
template<typename OutputType >
void fixed_side_gradient (unsigned int var, unsigned int qp, OutputType &grad_u) const
 
Gradient fixed_point_gradient (unsigned int var, const Point &p) const
 
template<typename OutputType >
void fixed_point_gradient (unsigned int var, const Point &p, OutputType &grad_u, const Real tolerance=TOLERANCE) const
 
Tensor fixed_interior_hessian (unsigned int var, unsigned int qp) const
 
template<typename OutputType >
void fixed_interior_hessian (unsigned int var, unsigned int qp, OutputType &hess_u) const
 
Tensor fixed_side_hessian (unsigned int var, unsigned int qp) const
 
template<typename OutputType >
void fixed_side_hessian (unsigned int var, unsigned int qp, OutputType &hess_u) const
 
Tensor fixed_point_hessian (unsigned int var, const Point &p) const
 
template<typename OutputType >
void fixed_point_hessian (unsigned int var, const Point &p, OutputType &hess_u, const Real tolerance=TOLERANCE) 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...
 
FEBaseget_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...
 
FEBaseget_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...
 
FEBaseget_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...
 
FEBaseget_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...
 
FEBaseget_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_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_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 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_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 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_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 interior_rate (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 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 edge_fe_reinit ()
 Reinitializes edge FE objects on the current geometric element. More...
 
const QBaseget_element_qrule () const
 Accessor for element interior quadrature rule for the dimension of the current _elem. More...
 
const QBaseget_element_qrule (unsigned short dim) const
 Accessor for element interior quadrature rule. More...
 
const QBaseget_side_qrule () const
 Accessor for element side quadrature rule for the dimension of the current _elem. More...
 
const QBaseget_side_qrule (unsigned short dim) const
 Accessor for element side quadrature rule. More...
 
const QBaseget_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 Systemget_mesh_system () const
 Accessor for moving mesh System. More...
 
Systemget_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 Elemget_elem () const
 Accessor for current Elem object. More...
 
Elemget_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...
 
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 Systemget_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

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...
 

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 Attributes

const Elem_neighbor
 Current neighbor element for assembling DG terms. More...
 
DenseVector< Number_neighbor_residual
 Residual vector of the neighbor component. More...
 
DenseMatrix< Number_elem_elem_jacobian
 The DG Jacobian terms. More...
 
DenseMatrix< Number_elem_neighbor_jacobian
 
DenseMatrix< Number_neighbor_elem_jacobian
 
DenseMatrix< Number_neighbor_neighbor_jacobian
 
std::vector< std::unique_ptr< DenseSubVector< Number > > > _neighbor_subresiduals
 Element residual subvectors and Jacobian submatrices. More...
 
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_elem_subjacobians
 
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_neighbor_subjacobians
 
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _neighbor_elem_subjacobians
 
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _neighbor_neighbor_subjacobians
 
std::vector< dof_id_type_neighbor_dof_indices
 Global Degree of freedom index lists for the neighbor element. More...
 
std::vector< std::vector< dof_id_type > > _neighbor_dof_indices_var
 
std::map< FEType, std::unique_ptr< FEAbstract > > _neighbor_side_fe
 Finite element objects for each variable's sides on the neighbor element. More...
 
std::vector< FEAbstract * > _neighbor_side_fe_var
 Pointers to the same finite element objects on the neighbor element, but indexed by variable number. More...
 
bool _dg_terms_active
 Boolean flag to indicate whether or not the DG terms have been assembled and should be used in the global matrix assembly. More...
 

Detailed Description

This class extends FEMContext in order to provide extra data required to perform local element residual and Jacobian assembly in the case of a discontinuous Galerkin (DG) discretization.

Author
David Knezevic
Date
2015 Extends FEMContext to work for DG problems.

Definition at line 39 of file dg_fem_context.h.

Member Typedef Documentation

◆ diff_subsolution_getter

typedef const DenseSubVector<Number>&(DiffContext::* libMesh::FEMContext::diff_subsolution_getter) (unsigned int) const
inherited

Helper typedef to simplify refactoring.

Definition at line 1030 of file fem_context.h.

◆ localized_vectors_iterator

typedef std::map<const NumericVector<Number> *, std::pair<DenseVector<Number>, std::vector<std::unique_ptr<DenseSubVector<Number> > > > >::iterator libMesh::DiffContext::localized_vectors_iterator
inherited

Typedef for the localized_vectors iterator.

Definition at line 544 of file diff_context.h.

Member Enumeration Documentation

◆ AlgebraicType

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 933 of file fem_context.h.

933  { NONE = 0, // Do not reinitialize dof_indices
934  DOFS_ONLY, // Reinitialize dof_indices, not
935  // algebraic structures
936  CURRENT, // Use dof_indices, current solution
937  OLD, // Use old_dof_indices, custom solution
938  OLD_DOFS_ONLY}; // Reinitialize old_dof_indices, not

Constructor & Destructor Documentation

◆ DGFEMContext()

libMesh::DGFEMContext::DGFEMContext ( const System sys)
explicit

Constructor.

Allocates some but fills no data structures.

◆ ~DGFEMContext()

virtual libMesh::DGFEMContext::~DGFEMContext ( )
virtual

Destructor.

Member Function Documentation

◆ add_localized_vector()

void libMesh::DiffContext::add_localized_vector ( NumericVector< Number > &  localized_vector,
const System sys 
)
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.

◆ algebraic_type()

AlgebraicType libMesh::FEMContext::algebraic_type ( ) const
inherited

Definition at line 954 of file fem_context.h.

References libMesh::FEMContext::_atype.

954 { return _atype; }
AlgebraicType _atype
Keep track of what type of algebra reinitialization is to be done.
Definition: fem_context.h:999

◆ build_new_fe()

template<typename OutputShape >
FEGenericBase<OutputShape>* libMesh::FEMContext::build_new_fe ( const FEGenericBase< OutputShape > *  fe,
const Point p,
const Real  tolerance = TOLERANCE 
) const
inherited

Helper function to reduce some code duplication in the *_point_* methods.

◆ cached_fe()

template<typename OutputShape >
FEGenericBase<OutputShape>* libMesh::FEMContext::cached_fe ( const unsigned int  elem_dim,
const FEType  fe_type 
) const
protectedinherited

◆ dg_terms_are_active()

bool libMesh::DGFEMContext::dg_terms_are_active ( ) const

Are the DG terms active, i.e.

have they been assembled?

Definition at line 232 of file dg_fem_context.h.

References _dg_terms_active.

233  { return _dg_terms_active; }
bool _dg_terms_active
Boolean flag to indicate whether or not the DG terms have been assembled and should be used in the gl...

◆ edge_fe_reinit()

virtual void libMesh::FEMContext::edge_fe_reinit ( )
virtualinherited

Reinitializes edge FE objects on the current geometric element.

Referenced by libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()().

◆ elem_dimensions()

const std::set<unsigned char>& libMesh::FEMContext::elem_dimensions ( ) const
inherited
Returns
Set of dimensions of elements present in the mesh at context initialization.

Definition at line 913 of file fem_context.h.

References libMesh::FEMContext::_elem_dims.

Referenced by libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()().

914  { return _elem_dims; }
std::set< unsigned char > _elem_dims
Cached dimensions of elements in the mesh, plus dimension 0 if SCALAR variables are in use...
Definition: fem_context.h:1135

◆ elem_edge_reinit()

virtual void libMesh::FEMContext::elem_edge_reinit ( Real  theta)
overridevirtualinherited

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.

◆ elem_fe_reinit()

virtual void libMesh::FEMContext::elem_fe_reinit ( const std::vector< Point > *const  pts = nullptr)
virtualinherited

Reinitializes interior FE objects on the current geometric element.

Referenced by libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()().

◆ elem_position_get()

void libMesh::FEMContext::elem_position_get ( )
inherited

Uses the geometry of elem to set the coordinate data specified by mesh_*_position configuration.

◆ elem_position_set()

void libMesh::FEMContext::elem_position_set ( Real  theta)
inherited

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 1197 of file fem_context.h.

References libMesh::FEMContext::_do_elem_position_set(), and libMesh::FEMContext::_mesh_sys.

1198 {
1199  if (_mesh_sys)
1200  this->_do_elem_position_set(theta);
1201 }
System * _mesh_sys
System from which to acquire moving mesh information.
Definition: fem_context.h:969
void _do_elem_position_set(Real theta)
Uses the coordinate data specified by mesh_*_position configuration to set the geometry of elem to th...

◆ elem_reinit()

virtual void libMesh::FEMContext::elem_reinit ( Real  theta)
overridevirtualinherited

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.

◆ elem_side_reinit()

virtual void libMesh::FEMContext::elem_side_reinit ( Real  theta)
overridevirtualinherited

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.

◆ fixed_interior_gradient() [1/2]

Gradient libMesh::FEMContext::fixed_interior_gradient ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The gradient of the fixed_solution variable var at the quadrature point qp on the current element interior.
Note
This API is currently present for backward compatibility.

◆ fixed_interior_gradient() [2/2]

template<typename OutputType >
void libMesh::FEMContext::fixed_interior_gradient ( unsigned int  var,
unsigned int  qp,
OutputType &  grad_u 
) const
inherited
Returns
The gradient of the fixed_solution variable var at the quadrature point qp on the current element interior.
Note
This is the preferred API.

◆ fixed_interior_hessian() [1/2]

Tensor libMesh::FEMContext::fixed_interior_hessian ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The hessian of the fixed_solution variable var at the quadrature point qp on the current element interior.
Note
This API is currently present for backward compatibility.

◆ fixed_interior_hessian() [2/2]

template<typename OutputType >
void libMesh::FEMContext::fixed_interior_hessian ( unsigned int  var,
unsigned int  qp,
OutputType &  hess_u 
) const
inherited
Returns
The hessian of the fixed_solution variable var at the quadrature point qp on the current element interior.
Note
This is the preferred API.

◆ fixed_interior_value() [1/2]

Number libMesh::FEMContext::fixed_interior_value ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The value of the fixed_solution variable var at the quadrature point qp on the current element interior.
Note
This API is currently present for backward compatibility.

◆ fixed_interior_value() [2/2]

template<typename OutputType >
void libMesh::FEMContext::fixed_interior_value ( unsigned int  var,
unsigned int  qp,
OutputType &  u 
) const
inherited
Returns
The value of the fixed_solution variable var at the quadrature point qp on the current element interior.
Note
This is the preferred API.

◆ fixed_point_gradient() [1/2]

Gradient libMesh::FEMContext::fixed_point_gradient ( unsigned int  var,
const Point p 
) const
inherited
Returns
The gradient of the fixed_solution variable var at the physical point p on the current element.
Note
This API is currently present for backward compatibility.

◆ fixed_point_gradient() [2/2]

template<typename OutputType >
void libMesh::FEMContext::fixed_point_gradient ( unsigned int  var,
const Point p,
OutputType &  grad_u,
const Real  tolerance = TOLERANCE 
) const
inherited
Returns
The gradient of the fixed_solution variable var at the physical point p on the current element.
Note
This is the preferred API.

Allows evaluation of points within a relative tolerance outside the element.

◆ fixed_point_hessian() [1/2]

Tensor libMesh::FEMContext::fixed_point_hessian ( unsigned int  var,
const Point p 
) const
inherited
Returns
The hessian of the fixed_solution variable var at the physical point p on the current element.
Note
This API is currently present for backward compatibility.

◆ fixed_point_hessian() [2/2]

template<typename OutputType >
void libMesh::FEMContext::fixed_point_hessian ( unsigned int  var,
const Point p,
OutputType &  hess_u,
const Real  tolerance = TOLERANCE 
) const
inherited
Returns
The hessian of the fixed_solution variable var at the physical point p on the current element.
Note
This is the preferred API.

Allows evaluation of points within a relative tolerance outside the element.

◆ fixed_point_value() [1/2]

Number libMesh::FEMContext::fixed_point_value ( unsigned int  var,
const Point p 
) const
inherited
Returns
The value of the fixed_solution variable var at the physical point p on the current element.
Note
This API is currently present for backward compatibility.

◆ fixed_point_value() [2/2]

template<typename OutputType >
void libMesh::FEMContext::fixed_point_value ( unsigned int  var,
const Point p,
OutputType &  u,
const Real  tolerance = TOLERANCE 
) const
inherited
Returns
The value of the fixed_solution variable var at the physical point p on the current element.
Note
This is the preferred API.

Allows evaluation of points within a relative tolerance outside the element.

◆ fixed_side_gradient() [1/2]

Gradient libMesh::FEMContext::fixed_side_gradient ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The gradient of the fixed_solution variable var at the quadrature point qp on the current element side.
Note
This API is currently present for backward compatibility.

◆ fixed_side_gradient() [2/2]

template<typename OutputType >
void libMesh::FEMContext::fixed_side_gradient ( unsigned int  var,
unsigned int  qp,
OutputType &  grad_u 
) const
inherited
Returns
The gradient of the fixed_solution variable var at the quadrature point qp on the current element side.
Note
This is the preferred API.

◆ fixed_side_hessian() [1/2]

Tensor libMesh::FEMContext::fixed_side_hessian ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The hessian of the fixed_solution variable var at the quadrature point qp on the current element side.
Note
This API is currently present for backward compatibility.

◆ fixed_side_hessian() [2/2]

template<typename OutputType >
void libMesh::FEMContext::fixed_side_hessian ( unsigned int  var,
unsigned int  qp,
OutputType &  hess_u 
) const
inherited
Returns
The hessian of the fixed_solution variable var at the quadrature point qp on the current element side.
Note
This is the preferred API.

◆ fixed_side_value() [1/2]

Number libMesh::FEMContext::fixed_side_value ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The value of the fixed_solution variable var at the quadrature point qp on the current element side.
Note
This API is currently present for backward compatibility.

◆ fixed_side_value() [2/2]

template<typename OutputType >
void libMesh::FEMContext::fixed_side_value ( unsigned int  var,
unsigned int  qp,
OutputType &  u 
) const
inherited
Returns
The value of the fixed_solution variable var at the quadrature point qp on the current element side.
Note
This is the preferred API.

◆ get_deltat_value()

Real libMesh::DiffContext::get_deltat_value ( )
inherited
Returns
The value currently pointed to by this class's _deltat member

◆ get_dim()

unsigned char libMesh::FEMContext::get_dim ( ) const
inherited

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 899 of file fem_context.h.

References libMesh::FEMContext::_dim.

Referenced by libMesh::FEMContext::get_element_fe(), and libMesh::FEMContext::get_side_fe().

900  { return this->_dim; }
unsigned char _dim
Cached dimension of largest dimension element in this mesh.
Definition: fem_context.h:1124

◆ get_dof_indices() [1/4]

const std::vector<dof_id_type>& libMesh::DiffContext::get_dof_indices ( ) const
inherited

Accessor for element dof indices.

Definition at line 367 of file diff_context.h.

References libMesh::DiffContext::_dof_indices.

Referenced by AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), A2::boundary_assembly(), AssemblyA2::boundary_assembly(), A3::boundary_assembly(), F0::boundary_assembly(), Output0::boundary_assembly(), SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), FirstOrderScalarSystemBase::element_time_derivative(), SecondOrderScalarSystemFirstOrderTimeSolverBase::element_time_derivative(), libMesh::VectorSetAction< Val >::insert(), A0::interior_assembly(), B::interior_assembly(), M0::interior_assembly(), A1::interior_assembly(), EIM_IP_assembly::interior_assembly(), AcousticsInnerProduct::interior_assembly(), A2::interior_assembly(), EIM_F::interior_assembly(), F0::interior_assembly(), OutputAssembly::interior_assembly(), AssemblyEIM::interior_assembly(), AssemblyF0::interior_assembly(), AssemblyF1::interior_assembly(), Ex6InnerProduct::interior_assembly(), Ex6EIMInnerProduct::interior_assembly(), FirstOrderScalarSystemBase::mass_residual(), SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual(), and libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()().

368  { return _dof_indices; }
std::vector< dof_id_type > _dof_indices
Global Degree of freedom index lists.
Definition: diff_context.h:637

◆ get_dof_indices() [2/4]

std::vector<dof_id_type>& libMesh::DiffContext::get_dof_indices ( )
inherited

Non-const accessor for element dof indices.

Definition at line 373 of file diff_context.h.

References libMesh::DiffContext::_dof_indices.

374  { return _dof_indices; }
std::vector< dof_id_type > _dof_indices
Global Degree of freedom index lists.
Definition: diff_context.h:637

◆ get_dof_indices() [3/4]

const std::vector<dof_id_type>& libMesh::DiffContext::get_dof_indices ( unsigned int  var) const
inherited

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.

381  {
382  libmesh_assert_greater(_dof_indices_var.size(), var);
383  return _dof_indices_var[var];
384  }
std::vector< std::vector< dof_id_type > > _dof_indices_var
Definition: diff_context.h:638

◆ get_dof_indices() [4/4]

std::vector<dof_id_type>& libMesh::DiffContext::get_dof_indices ( unsigned int  var)
inherited

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.

391  {
392  libmesh_assert_greater(_dof_indices_var.size(), var);
393  return _dof_indices_var[var];
394  }
std::vector< std::vector< dof_id_type > > _dof_indices_var
Definition: diff_context.h:638

◆ get_edge()

unsigned char libMesh::FEMContext::get_edge ( ) const
inherited

Accessor for current edge of Elem object.

Definition at line 891 of file fem_context.h.

References libMesh::FEMContext::edge.

892  { return edge; }
unsigned char edge
Current edge for edge_* to examine.
Definition: fem_context.h:984

◆ get_edge_fe() [1/2]

template<typename OutputShape >
void libMesh::FEMContext::get_edge_fe ( unsigned int  var,
FEGenericBase< OutputShape > *&  fe 
) const
inherited

Accessor for edge (3D only!) finite element object for variable var.

Definition at line 1241 of file fem_context.h.

References libMesh::FEMContext::_edge_fe_var.

Referenced by libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()().

1242 {
1243  libmesh_assert_less ( var, _edge_fe_var.size() );
1244  fe = cast_ptr<FEGenericBase<OutputShape> *>( _edge_fe_var[var] );
1245 }
std::vector< FEAbstract * > _edge_fe_var
Definition: fem_context.h:1108

◆ get_edge_fe() [2/2]

FEBase * libMesh::FEMContext::get_edge_fe ( unsigned int  var) const
inherited

Accessor for edge (3D only!) finite element object for scalar-valued variable var.

Definition at line 1248 of file fem_context.h.

References libMesh::FEMContext::_edge_fe_var.

1249 {
1250  libmesh_assert_less ( var, _edge_fe_var.size() );
1251  return cast_ptr<FEBase *>( _edge_fe_var[var] );
1252 }
std::vector< FEAbstract * > _edge_fe_var
Definition: fem_context.h:1108

◆ get_edge_qrule()

const QBase& libMesh::FEMContext::get_edge_qrule ( ) const
inherited

Accessor for element edge quadrature rule.

Definition at line 794 of file fem_context.h.

References libMesh::FEMContext::_edge_qrule.

795  { return *(this->_edge_qrule); }
std::unique_ptr< QBase > _edge_qrule
Quadrature rules for element edges.
Definition: fem_context.h:1160

◆ get_elem() [1/2]

const Elem& libMesh::FEMContext::get_elem ( ) const
inherited

◆ get_elem() [2/2]

Elem& libMesh::FEMContext::get_elem ( )
inherited

Accessor for current Elem object.

Definition at line 878 of file fem_context.h.

References libMesh::FEMContext::_elem.

879  { libmesh_assert(this->_elem);
880  return *(const_cast<Elem *>(this->_elem)); }
const Elem * _elem
Current element for element_* to examine.
Definition: fem_context.h:1119

◆ get_elem_dim()

unsigned char libMesh::FEMContext::get_elem_dim ( ) const
inherited
Returns
The dimension of this->_elem. For mixed dimension meshes, this may be different from get_dim().

Definition at line 906 of file fem_context.h.

References libMesh::FEMContext::_elem_dim.

Referenced by libMesh::FEMContext::get_element_qrule(), and libMesh::FEMContext::get_side_qrule().

907  { return _elem_dim; }
unsigned char _elem_dim
Cached dimension of this->_elem.
Definition: fem_context.h:1129

◆ get_elem_elem_jacobian() [1/4]

const DenseMatrix<Number>& libMesh::DGFEMContext::get_elem_elem_jacobian ( ) const

Const accessor for element-element Jacobian.

Definition at line 110 of file dg_fem_context.h.

References _elem_elem_jacobian.

111  { return _elem_elem_jacobian; }
DenseMatrix< Number > _elem_elem_jacobian
The DG Jacobian terms.

◆ get_elem_elem_jacobian() [2/4]

DenseMatrix<Number>& libMesh::DGFEMContext::get_elem_elem_jacobian ( )

Non-const accessor for element-element Jacobian.

Definition at line 116 of file dg_fem_context.h.

References _elem_elem_jacobian.

117  { return _elem_elem_jacobian; }
DenseMatrix< Number > _elem_elem_jacobian
The DG Jacobian terms.

◆ get_elem_elem_jacobian() [3/4]

const DenseSubMatrix<Number>& libMesh::DGFEMContext::get_elem_elem_jacobian ( unsigned int  var1,
unsigned int  var2 
) const

Const accessor for element-element Jacobian of particular variables corresponding to the variable index arguments.

Definition at line 123 of file dg_fem_context.h.

References _elem_elem_subjacobians.

124  { return *(_elem_elem_subjacobians[var1][var2]); }
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_elem_subjacobians

◆ get_elem_elem_jacobian() [4/4]

DenseSubMatrix<Number>& libMesh::DGFEMContext::get_elem_elem_jacobian ( unsigned int  var1,
unsigned int  var2 
)

Non-const accessor for element-element Jacobian of particular variables corresponding to the variable index arguments.

Definition at line 130 of file dg_fem_context.h.

References _elem_elem_subjacobians.

131  { return *(_elem_elem_subjacobians[var1][var2]); }
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_elem_subjacobians

◆ get_elem_fixed_solution() [1/4]

const DenseVector<Number>& libMesh::DiffContext::get_elem_fixed_solution ( ) const
inherited

Accessor for element fixed solution.

Definition at line 215 of file diff_context.h.

References libMesh::DiffContext::_elem_fixed_solution.

216  { return _elem_fixed_solution; }
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.
Definition: diff_context.h:603

◆ get_elem_fixed_solution() [2/4]

DenseVector<Number>& libMesh::DiffContext::get_elem_fixed_solution ( )
inherited

Non-const accessor for element fixed solution.

Definition at line 221 of file diff_context.h.

References libMesh::DiffContext::_elem_fixed_solution.

222  { return _elem_fixed_solution; }
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.
Definition: diff_context.h:603

◆ get_elem_fixed_solution() [3/4]

const DenseSubVector<Number>& libMesh::DiffContext::get_elem_fixed_solution ( unsigned int  var) const
inherited

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.

229  {
230  libmesh_assert_greater(_elem_fixed_subsolutions.size(), var);
231  libmesh_assert(_elem_fixed_subsolutions[var]);
232  return *(_elem_fixed_subsolutions[var]);
233  }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _elem_fixed_subsolutions
Definition: diff_context.h:604

◆ get_elem_fixed_solution() [4/4]

DenseSubVector<Number>& libMesh::DiffContext::get_elem_fixed_solution ( unsigned int  var)
inherited

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.

240  {
241  libmesh_assert_greater(_elem_fixed_subsolutions.size(), var);
242  libmesh_assert(_elem_fixed_subsolutions[var]);
243  return *(_elem_fixed_subsolutions[var]);
244  }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _elem_fixed_subsolutions
Definition: diff_context.h:604

◆ get_elem_jacobian() [1/4]

const DenseMatrix<Number>& libMesh::DiffContext::get_elem_jacobian ( ) const
inherited

◆ get_elem_jacobian() [2/4]

DenseMatrix<Number>& libMesh::DiffContext::get_elem_jacobian ( )
inherited

Non-const accessor for element Jacobian.

Definition at line 289 of file diff_context.h.

References libMesh::DiffContext::_elem_jacobian.

290  { return _elem_jacobian; }
DenseMatrix< Number > _elem_jacobian
Element jacobian: derivatives of elem_residual with respect to elem_solution.
Definition: diff_context.h:615

◆ get_elem_jacobian() [3/4]

const DenseSubMatrix<Number>& libMesh::DiffContext::get_elem_jacobian ( unsigned int  var1,
unsigned int  var2 
) const
inherited

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.

297  {
298  libmesh_assert_greater(_elem_subjacobians.size(), var1);
299  libmesh_assert_greater(_elem_subjacobians[var1].size(), var2);
300  libmesh_assert(_elem_subjacobians[var1][var2]);
301  return *(_elem_subjacobians[var1][var2]);
302  }
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_subjacobians
Definition: diff_context.h:632

◆ get_elem_jacobian() [4/4]

DenseSubMatrix<Number>& libMesh::DiffContext::get_elem_jacobian ( unsigned int  var1,
unsigned int  var2 
)
inherited

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.

309  {
310  libmesh_assert_greater(_elem_subjacobians.size(), var1);
311  libmesh_assert_greater(_elem_subjacobians[var1].size(), var2);
312  libmesh_assert(_elem_subjacobians[var1][var2]);
313  return *(_elem_subjacobians[var1][var2]);
314  }
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_subjacobians
Definition: diff_context.h:632

◆ get_elem_neighbor_jacobian() [1/4]

const DenseMatrix<Number>& libMesh::DGFEMContext::get_elem_neighbor_jacobian ( ) const

Const accessor for element-neighbor Jacobian.

Definition at line 136 of file dg_fem_context.h.

References _elem_neighbor_jacobian.

137  { return _elem_neighbor_jacobian; }
DenseMatrix< Number > _elem_neighbor_jacobian

◆ get_elem_neighbor_jacobian() [2/4]

DenseMatrix<Number>& libMesh::DGFEMContext::get_elem_neighbor_jacobian ( )

Non-const accessor for element -neighborJacobian.

Definition at line 142 of file dg_fem_context.h.

References _elem_neighbor_jacobian.

143  { return _elem_neighbor_jacobian; }
DenseMatrix< Number > _elem_neighbor_jacobian

◆ get_elem_neighbor_jacobian() [3/4]

const DenseSubMatrix<Number>& libMesh::DGFEMContext::get_elem_neighbor_jacobian ( unsigned int  var1,
unsigned int  var2 
) const

Const accessor for element-neighbor Jacobian of particular variables corresponding to the variable index arguments.

Definition at line 149 of file dg_fem_context.h.

References _elem_neighbor_subjacobians.

150  { return *(_elem_neighbor_subjacobians[var1][var2]); }
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_neighbor_subjacobians

◆ get_elem_neighbor_jacobian() [4/4]

DenseSubMatrix<Number>& libMesh::DGFEMContext::get_elem_neighbor_jacobian ( unsigned int  var1,
unsigned int  var2 
)

Non-const accessor for element-neighbor Jacobian of particular variables corresponding to the variable index arguments.

Definition at line 156 of file dg_fem_context.h.

References _elem_neighbor_subjacobians.

157  { return *(_elem_neighbor_subjacobians[var1][var2]); }
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _elem_neighbor_subjacobians

◆ get_elem_residual() [1/4]

const DenseVector<Number>& libMesh::DiffContext::get_elem_residual ( ) const
inherited

◆ get_elem_residual() [2/4]

DenseVector<Number>& libMesh::DiffContext::get_elem_residual ( )
inherited

Non-const accessor for element residual.

Definition at line 255 of file diff_context.h.

References libMesh::DiffContext::_elem_residual.

256  { return _elem_residual; }
DenseVector< Number > _elem_residual
Element residual vector.
Definition: diff_context.h:609

◆ get_elem_residual() [3/4]

const DenseSubVector<Number>& libMesh::DiffContext::get_elem_residual ( unsigned int  var) const
inherited

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.

263  {
264  libmesh_assert_greater(_elem_subresiduals.size(), var);
265  libmesh_assert(_elem_subresiduals[var]);
266  return *(_elem_subresiduals[var]);
267  }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _elem_subresiduals
Element residual subvectors and Jacobian submatrices.
Definition: diff_context.h:631

◆ get_elem_residual() [4/4]

DenseSubVector<Number>& libMesh::DiffContext::get_elem_residual ( unsigned int  var)
inherited

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.

274  {
275  libmesh_assert_greater(_elem_subresiduals.size(), var);
276  libmesh_assert(_elem_subresiduals[var]);
277  return *(_elem_subresiduals[var]);
278  }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _elem_subresiduals
Element residual subvectors and Jacobian submatrices.
Definition: diff_context.h:631

◆ get_elem_solution() [1/4]

const DenseVector<Number>& libMesh::DiffContext::get_elem_solution ( ) const
inherited

Accessor for element solution.

Definition at line 111 of file diff_context.h.

References libMesh::DiffContext::_elem_solution.

112  { return _elem_solution; }
DenseVector< Number > _elem_solution
Element by element components of nonlinear_solution as adjusted by a time_solver. ...
Definition: diff_context.h:581

◆ get_elem_solution() [2/4]

DenseVector<Number>& libMesh::DiffContext::get_elem_solution ( )
inherited

Non-const accessor for element solution.

Definition at line 117 of file diff_context.h.

References libMesh::DiffContext::_elem_solution.

118  { return _elem_solution; }
DenseVector< Number > _elem_solution
Element by element components of nonlinear_solution as adjusted by a time_solver. ...
Definition: diff_context.h:581

◆ get_elem_solution() [3/4]

const DenseSubVector<Number>& libMesh::DiffContext::get_elem_solution ( unsigned int  var) const
inherited

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.

125  {
126  libmesh_assert_greater(_elem_subsolutions.size(), var);
127  libmesh_assert(_elem_subsolutions[var]);
128  return *(_elem_subsolutions[var]);
129  }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _elem_subsolutions
Definition: diff_context.h:582

◆ get_elem_solution() [4/4]

DenseSubVector<Number>& libMesh::DiffContext::get_elem_solution ( unsigned int  var)
inherited

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.

136  {
137  libmesh_assert_greater(_elem_subsolutions.size(), var);
138  libmesh_assert(_elem_subsolutions[var]);
139  return *(_elem_subsolutions[var]);
140  }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _elem_subsolutions
Definition: diff_context.h:582

◆ get_elem_solution_accel() [1/4]

const DenseVector<Number>& libMesh::DiffContext::get_elem_solution_accel ( ) const
inherited

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.

181  { return _elem_solution_accel; }
DenseVector< Number > _elem_solution_accel
Element by element components of du/dt as adjusted by a time_solver.
Definition: diff_context.h:595

◆ get_elem_solution_accel() [2/4]

DenseVector<Number>& libMesh::DiffContext::get_elem_solution_accel ( )
inherited

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.

188  { return _elem_solution_accel; }
DenseVector< Number > _elem_solution_accel
Element by element components of du/dt as adjusted by a time_solver.
Definition: diff_context.h:595

◆ get_elem_solution_accel() [3/4]

const DenseSubVector<Number>& libMesh::DiffContext::get_elem_solution_accel ( unsigned int  var) const
inherited

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.

195  {
196  libmesh_assert_greater(_elem_subsolution_accels.size(), var);
197  libmesh_assert(_elem_subsolution_accels[var]);
198  return *(_elem_subsolution_accels[var]);
199  }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _elem_subsolution_accels
Definition: diff_context.h:596

◆ get_elem_solution_accel() [4/4]

DenseSubVector<Number>& libMesh::DiffContext::get_elem_solution_accel ( unsigned int  var)
inherited

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.

206  {
207  libmesh_assert_greater(_elem_subsolution_accels.size(), var);
208  libmesh_assert(_elem_subsolution_accels[var]);
209  return *(_elem_subsolution_accels[var]);
210  }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _elem_subsolution_accels
Definition: diff_context.h:596

◆ get_elem_solution_accel_derivative()

Real libMesh::DiffContext::get_elem_solution_accel_derivative ( ) const
inherited

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 SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), and SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual().

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.
Definition: diff_context.h:514

◆ get_elem_solution_derivative()

Real libMesh::DiffContext::get_elem_solution_derivative ( ) const
inherited

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.

437  { return elem_solution_derivative; }
Real elem_solution_derivative
The derivative of elem_solution with respect to the current nonlinear solution.
Definition: diff_context.h:500

◆ get_elem_solution_rate() [1/4]

const DenseVector<Number>& libMesh::DiffContext::get_elem_solution_rate ( ) const
inherited

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.

146  { return _elem_solution_rate; }
DenseVector< Number > _elem_solution_rate
Element by element components of du/dt as adjusted by a time_solver.
Definition: diff_context.h:588

◆ get_elem_solution_rate() [2/4]

DenseVector<Number>& libMesh::DiffContext::get_elem_solution_rate ( )
inherited

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.

153  { return _elem_solution_rate; }
DenseVector< Number > _elem_solution_rate
Element by element components of du/dt as adjusted by a time_solver.
Definition: diff_context.h:588

◆ get_elem_solution_rate() [3/4]

const DenseSubVector<Number>& libMesh::DiffContext::get_elem_solution_rate ( unsigned int  var) const
inherited

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.

160  {
161  libmesh_assert_greater(_elem_subsolution_rates.size(), var);
162  libmesh_assert(_elem_subsolution_rates[var]);
163  return *(_elem_subsolution_rates[var]);
164  }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _elem_subsolution_rates
Definition: diff_context.h:589

◆ get_elem_solution_rate() [4/4]

DenseSubVector<Number>& libMesh::DiffContext::get_elem_solution_rate ( unsigned int  var)
inherited

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.

171  {
172  libmesh_assert_greater(_elem_subsolution_rates.size(), var);
173  libmesh_assert(_elem_subsolution_rates[var]);
174  return *(_elem_subsolution_rates[var]);
175  }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _elem_subsolution_rates
Definition: diff_context.h:589

◆ get_elem_solution_rate_derivative()

Real libMesh::DiffContext::get_elem_solution_rate_derivative ( ) const
inherited

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 SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), and FirstOrderScalarSystemBase::mass_residual().

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.
Definition: diff_context.h:507

◆ get_element_fe() [1/4]

template<typename OutputShape >
void libMesh::FEMContext::get_element_fe ( unsigned int  var,
FEGenericBase< OutputShape > *&  fe 
) const
inherited

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 262 of file fem_context.h.

References libMesh::FEMContext::get_dim().

Referenced by libMesh::FEMContext::get_element_fe(), libMesh::ParsedFEMFunction< T >::init_context(), ElasticityRBConstruction::init_context(), SimpleRBConstruction::init_context(), A0::interior_assembly(), B::interior_assembly(), M0::interior_assembly(), A1::interior_assembly(), EIM_IP_assembly::interior_assembly(), AcousticsInnerProduct::interior_assembly(), A2::interior_assembly(), EIM_F::interior_assembly(), F0::interior_assembly(), OutputAssembly::interior_assembly(), AssemblyEIM::interior_assembly(), AssemblyF0::interior_assembly(), AssemblyF1::interior_assembly(), Ex6InnerProduct::interior_assembly(), Ex6EIMInnerProduct::interior_assembly(), and libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()().

263  { this->get_element_fe<OutputShape>(var,fe,this->get_dim()); }
unsigned char get_dim() const
Accessor for cached mesh dimension.
Definition: fem_context.h:899

◆ get_element_fe() [2/4]

FEBase* libMesh::FEMContext::get_element_fe ( unsigned int  var) const
inherited

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 273 of file fem_context.h.

References libMesh::FEMContext::get_dim(), and libMesh::FEMContext::get_element_fe().

274  { return this->get_element_fe(var,this->get_dim()); }
unsigned char get_dim() const
Accessor for cached mesh dimension.
Definition: fem_context.h:899
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...
Definition: fem_context.h:262

◆ get_element_fe() [3/4]

template<typename OutputShape >
void libMesh::FEMContext::get_element_fe ( unsigned int  var,
FEGenericBase< OutputShape > *&  fe,
unsigned short  dim 
) const
inherited

Accessor for interior finite element object for variable var for dimension dim.

Definition at line 1205 of file fem_context.h.

References libMesh::FEMContext::_element_fe_var.

1207 {
1208  libmesh_assert( !_element_fe_var[dim].empty() );
1209  libmesh_assert_less ( var, (_element_fe_var[dim].size() ) );
1210  fe = cast_ptr<FEGenericBase<OutputShape> *>( (_element_fe_var[dim][var] ) );
1211 }
std::vector< std::vector< FEAbstract * > > _element_fe_var
Pointers to the same finite element objects, but indexed by variable number.
Definition: fem_context.h:1106

◆ get_element_fe() [4/4]

FEBase * libMesh::FEMContext::get_element_fe ( unsigned int  var,
unsigned short  dim 
) const
inherited

Accessor for interior finite element object for scalar-valued variable var for dimension dim.

Definition at line 1214 of file fem_context.h.

References libMesh::FEMContext::_element_fe_var.

1215 {
1216  libmesh_assert( !_element_fe_var[dim].empty() );
1217  libmesh_assert_less ( var, (_element_fe_var[dim].size() ) );
1218  return cast_ptr<FEBase *>( (_element_fe_var[dim][var] ) );
1219 }
std::vector< std::vector< FEAbstract * > > _element_fe_var
Pointers to the same finite element objects, but indexed by variable number.
Definition: fem_context.h:1106

◆ get_element_qrule() [1/2]

const QBase& libMesh::FEMContext::get_element_qrule ( ) const
inherited

◆ get_element_qrule() [2/2]

const QBase& libMesh::FEMContext::get_element_qrule ( unsigned short  dim) const
inherited

Accessor for element interior quadrature rule.

Definition at line 778 of file fem_context.h.

References libMesh::FEMContext::_element_qrule.

779  { libmesh_assert(_element_qrule[dim]);
780  return *(this->_element_qrule[dim]); }
std::vector< std::unique_ptr< QBase > > _element_qrule
Quadrature rule for element interior.
Definition: fem_context.h:1143

◆ get_fixed_solution_derivative()

Real libMesh::DiffContext::get_fixed_solution_derivative ( ) const
inherited

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.

464  { return fixed_solution_derivative; }
Real fixed_solution_derivative
The derivative of elem_fixed_solution with respect to the nonlinear solution, for use by systems cons...
Definition: diff_context.h:521

◆ get_localized_subvector() [1/2]

DenseSubVector<Number>& libMesh::DiffContext::get_localized_subvector ( const NumericVector< Number > &  localized_vector,
unsigned int  var 
)
inherited

Return a reference to DenseSubVector localization of localized_vector at variable var contained in the _localized_vectors map.

◆ get_localized_subvector() [2/2]

const DenseSubVector<Number>& libMesh::DiffContext::get_localized_subvector ( const NumericVector< Number > &  localized_vector,
unsigned int  var 
) const
inherited

const accessible version of get_localized_subvector function

◆ get_localized_vector() [1/2]

DenseVector<Number>& libMesh::DiffContext::get_localized_vector ( const NumericVector< Number > &  localized_vector)
inherited

Return a reference to DenseVector localization of localized_vector contained in the _localized_vectors map.

◆ get_localized_vector() [2/2]

const DenseVector<Number>& libMesh::DiffContext::get_localized_vector ( const NumericVector< Number > &  localized_vector) const
inherited

const accessible version of get_localized_vector function

◆ get_mesh_system() [1/2]

const System* libMesh::FEMContext::get_mesh_system ( ) const
inherited

Accessor for moving mesh System.

Definition at line 811 of file fem_context.h.

References libMesh::FEMContext::_mesh_sys.

812  { return this->_mesh_sys; }
System * _mesh_sys
System from which to acquire moving mesh information.
Definition: fem_context.h:969

◆ get_mesh_system() [2/2]

System* libMesh::FEMContext::get_mesh_system ( )
inherited

Accessor for moving mesh System.

Definition at line 817 of file fem_context.h.

References libMesh::FEMContext::_mesh_sys.

818  { return this->_mesh_sys; }
System * _mesh_sys
System from which to acquire moving mesh information.
Definition: fem_context.h:969

◆ get_mesh_x_var()

unsigned int libMesh::FEMContext::get_mesh_x_var ( ) const
inherited

Accessor for x-variable of moving mesh System.

Definition at line 823 of file fem_context.h.

References libMesh::FEMContext::_mesh_x_var.

824  { return _mesh_x_var; }
unsigned int _mesh_x_var
Variables from which to acquire moving mesh information.
Definition: fem_context.h:974

◆ get_mesh_y_var()

unsigned int libMesh::FEMContext::get_mesh_y_var ( ) const
inherited

Accessor for y-variable of moving mesh System.

Definition at line 837 of file fem_context.h.

References libMesh::FEMContext::_mesh_y_var.

838  { return _mesh_y_var; }
unsigned int _mesh_y_var
Definition: fem_context.h:974

◆ get_mesh_z_var()

unsigned int libMesh::FEMContext::get_mesh_z_var ( ) const
inherited

Accessor for z-variable of moving mesh System.

Definition at line 851 of file fem_context.h.

References libMesh::FEMContext::_mesh_z_var.

852  { return _mesh_z_var; }
unsigned int _mesh_z_var
Definition: fem_context.h:974

◆ get_neighbor()

const Elem& libMesh::DGFEMContext::get_neighbor ( ) const

Accessor for current neighbor Elem object for assembling DG terms.

Definition at line 226 of file dg_fem_context.h.

References _neighbor.

227  { return *_neighbor; }
const Elem * _neighbor
Current neighbor element for assembling DG terms.

◆ get_neighbor_dof_indices() [1/2]

const std::vector<dof_id_type>& libMesh::DGFEMContext::get_neighbor_dof_indices ( ) const

Accessor for neighbor dof indices.

Definition at line 71 of file dg_fem_context.h.

References _neighbor_dof_indices.

72  { return _neighbor_dof_indices; }
std::vector< dof_id_type > _neighbor_dof_indices
Global Degree of freedom index lists for the neighbor element.

◆ get_neighbor_dof_indices() [2/2]

const std::vector<dof_id_type>& libMesh::DGFEMContext::get_neighbor_dof_indices ( unsigned int  var) const

Accessor for element dof indices of a particular variable corresponding to the index argument.

Definition at line 78 of file dg_fem_context.h.

References _neighbor_dof_indices_var.

79  { return _neighbor_dof_indices_var[var]; }
std::vector< std::vector< dof_id_type > > _neighbor_dof_indices_var

◆ get_neighbor_elem_jacobian() [1/4]

const DenseMatrix<Number>& libMesh::DGFEMContext::get_neighbor_elem_jacobian ( ) const

Const accessor for element-neighbor Jacobian.

Definition at line 162 of file dg_fem_context.h.

References _neighbor_elem_jacobian.

163  { return _neighbor_elem_jacobian; }
DenseMatrix< Number > _neighbor_elem_jacobian

◆ get_neighbor_elem_jacobian() [2/4]

DenseMatrix<Number>& libMesh::DGFEMContext::get_neighbor_elem_jacobian ( )

Non-const accessor for element Jacobian.

Definition at line 168 of file dg_fem_context.h.

References _neighbor_elem_jacobian.

169  { return _neighbor_elem_jacobian; }
DenseMatrix< Number > _neighbor_elem_jacobian

◆ get_neighbor_elem_jacobian() [3/4]

const DenseSubMatrix<Number>& libMesh::DGFEMContext::get_neighbor_elem_jacobian ( unsigned int  var1,
unsigned int  var2 
) const

Const accessor for neighbor-element Jacobian of particular variables corresponding to the variable index arguments.

Definition at line 175 of file dg_fem_context.h.

References _neighbor_elem_subjacobians.

176  { return *(_neighbor_elem_subjacobians[var1][var2]); }
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _neighbor_elem_subjacobians

◆ get_neighbor_elem_jacobian() [4/4]

DenseSubMatrix<Number>& libMesh::DGFEMContext::get_neighbor_elem_jacobian ( unsigned int  var1,
unsigned int  var2 
)

Non-const accessor for neighbor-element Jacobian of particular variables corresponding to the variable index arguments.

Definition at line 182 of file dg_fem_context.h.

References _neighbor_elem_subjacobians.

183  { return *(_neighbor_elem_subjacobians[var1][var2]); }
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _neighbor_elem_subjacobians

◆ get_neighbor_neighbor_jacobian() [1/4]

const DenseMatrix<Number>& libMesh::DGFEMContext::get_neighbor_neighbor_jacobian ( ) const

Const accessor for element-neighbor Jacobian.

Definition at line 188 of file dg_fem_context.h.

References _neighbor_neighbor_jacobian.

189  { return _neighbor_neighbor_jacobian; }
DenseMatrix< Number > _neighbor_neighbor_jacobian

◆ get_neighbor_neighbor_jacobian() [2/4]

DenseMatrix<Number>& libMesh::DGFEMContext::get_neighbor_neighbor_jacobian ( )

Non-const accessor for element Jacobian.

Definition at line 194 of file dg_fem_context.h.

References _neighbor_neighbor_jacobian.

195  { return _neighbor_neighbor_jacobian; }
DenseMatrix< Number > _neighbor_neighbor_jacobian

◆ get_neighbor_neighbor_jacobian() [3/4]

const DenseSubMatrix<Number>& libMesh::DGFEMContext::get_neighbor_neighbor_jacobian ( unsigned int  var1,
unsigned int  var2 
) const

Const accessor for neighbor-neighbor Jacobian of particular variables corresponding to the variable index arguments.

Definition at line 201 of file dg_fem_context.h.

References _neighbor_neighbor_subjacobians.

202  { return *(_neighbor_neighbor_subjacobians[var1][var2]); }
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _neighbor_neighbor_subjacobians

◆ get_neighbor_neighbor_jacobian() [4/4]

DenseSubMatrix<Number>& libMesh::DGFEMContext::get_neighbor_neighbor_jacobian ( unsigned int  var1,
unsigned int  var2 
)

Non-const accessor for neighbor-neighbor Jacobian of particular variables corresponding to the variable index arguments.

Definition at line 208 of file dg_fem_context.h.

References _neighbor_neighbor_subjacobians.

209  { return *(_neighbor_neighbor_subjacobians[var1][var2]); }
std::vector< std::vector< std::unique_ptr< DenseSubMatrix< Number > > > > _neighbor_neighbor_subjacobians

◆ get_neighbor_residual() [1/4]

const DenseVector<Number>& libMesh::DGFEMContext::get_neighbor_residual ( ) const

Const accessor for neighbor residual.

Definition at line 84 of file dg_fem_context.h.

References _neighbor_residual.

85  { return _neighbor_residual; }
DenseVector< Number > _neighbor_residual
Residual vector of the neighbor component.

◆ get_neighbor_residual() [2/4]

DenseVector<Number>& libMesh::DGFEMContext::get_neighbor_residual ( )

Non-const accessor for neighbor residual.

Definition at line 90 of file dg_fem_context.h.

References _neighbor_residual.

91  { return _neighbor_residual; }
DenseVector< Number > _neighbor_residual
Residual vector of the neighbor component.

◆ get_neighbor_residual() [3/4]

const DenseSubVector<Number>& libMesh::DGFEMContext::get_neighbor_residual ( unsigned int  var) const

Const accessor for neighbor residual of a particular variable corresponding to the variable index argument.

Definition at line 97 of file dg_fem_context.h.

References _neighbor_subresiduals.

98  { return *(_neighbor_subresiduals[var]); }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _neighbor_subresiduals
Element residual subvectors and Jacobian submatrices.

◆ get_neighbor_residual() [4/4]

DenseSubVector<Number>& libMesh::DGFEMContext::get_neighbor_residual ( unsigned int  var)

Non-const accessor for neighbor residual of a particular variable corresponding to the variable index argument.

Definition at line 104 of file dg_fem_context.h.

References _neighbor_subresiduals.

105  { return *(_neighbor_subresiduals[var]); }
std::vector< std::unique_ptr< DenseSubVector< Number > > > _neighbor_subresiduals
Element residual subvectors and Jacobian submatrices.

◆ get_neighbor_side_fe()

template<typename OutputShape >
void libMesh::DGFEMContext::get_neighbor_side_fe ( unsigned int  var,
FEGenericBase< OutputShape > *&  fe 
) const

Accessor for neighbor edge/face (2D/3D) finite element object for variable var.

Definition at line 301 of file dg_fem_context.h.

References _neighbor_side_fe_var.

302 {
303  libmesh_assert_less ( var, _neighbor_side_fe_var.size() );
304  fe = cast_ptr<FEGenericBase<OutputShape> *>( _neighbor_side_fe_var[var] );
305 }
std::vector< FEAbstract * > _neighbor_side_fe_var
Pointers to the same finite element objects on the neighbor element, but indexed by variable number...

◆ get_qoi_derivatives() [1/4]

const std::vector<DenseVector<Number> >& libMesh::DiffContext::get_qoi_derivatives ( ) const
inherited

Const accessor for QoI derivatives.

Definition at line 331 of file diff_context.h.

References libMesh::DiffContext::_elem_qoi_derivative.

332  { return _elem_qoi_derivative; }
std::vector< DenseVector< Number > > _elem_qoi_derivative
Element quantity of interest derivative contributions.
Definition: diff_context.h:625

◆ get_qoi_derivatives() [2/4]

std::vector<DenseVector<Number> >& libMesh::DiffContext::get_qoi_derivatives ( )
inherited

Non-const accessor for QoI derivatives.

Definition at line 337 of file diff_context.h.

References libMesh::DiffContext::_elem_qoi_derivative.

338  { return _elem_qoi_derivative; }
std::vector< DenseVector< Number > > _elem_qoi_derivative
Element quantity of interest derivative contributions.
Definition: diff_context.h:625

◆ get_qoi_derivatives() [3/4]

const DenseSubVector<Number>& libMesh::DiffContext::get_qoi_derivatives ( std::size_t  qoi,
unsigned int  var 
) const
inherited

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.

345  {
346  libmesh_assert_greater(_elem_qoi_subderivatives.size(), qoi);
347  libmesh_assert_greater(_elem_qoi_subderivatives[qoi].size(), var);
348  libmesh_assert(_elem_qoi_subderivatives[qoi][var]);
349  return *(_elem_qoi_subderivatives[qoi][var]);
350  }
std::vector< std::vector< std::unique_ptr< DenseSubVector< Number > > > > _elem_qoi_subderivatives
Definition: diff_context.h:626

◆ get_qoi_derivatives() [4/4]

DenseSubVector<Number>& libMesh::DiffContext::get_qoi_derivatives ( std::size_t  qoi,
unsigned int  var 
)
inherited

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.

357  {
358  libmesh_assert_greater(_elem_qoi_subderivatives.size(), qoi);
359  libmesh_assert_greater(_elem_qoi_subderivatives[qoi].size(), var);
360  libmesh_assert(_elem_qoi_subderivatives[qoi][var]);
361  return *(_elem_qoi_subderivatives[qoi][var]);
362  }
std::vector< std::vector< std::unique_ptr< DenseSubVector< Number > > > > _elem_qoi_subderivatives
Definition: diff_context.h:626

◆ get_qois() [1/2]

const std::vector<Number>& libMesh::DiffContext::get_qois ( ) const
inherited

Const accessor for QoI vector.

Definition at line 319 of file diff_context.h.

References libMesh::DiffContext::_elem_qoi.

320  { return _elem_qoi; }
std::vector< Number > _elem_qoi
Element quantity of interest contributions.
Definition: diff_context.h:620

◆ get_qois() [2/2]

std::vector<Number>& libMesh::DiffContext::get_qois ( )
inherited

Non-const accessor for QoI vector.

Definition at line 325 of file diff_context.h.

References libMesh::DiffContext::_elem_qoi.

326  { return _elem_qoi; }
std::vector< Number > _elem_qoi
Element quantity of interest contributions.
Definition: diff_context.h:620

◆ get_side()

unsigned char libMesh::FEMContext::get_side ( ) const
inherited

Accessor for current side of Elem object.

Definition at line 885 of file fem_context.h.

References libMesh::FEMContext::side.

886  { return side; }
unsigned char side
Current side for side_* to examine.
Definition: fem_context.h:979

◆ get_side_fe() [1/4]

template<typename OutputShape >
void libMesh::FEMContext::get_side_fe ( unsigned int  var,
FEGenericBase< OutputShape > *&  fe 
) const
inherited

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 299 of file fem_context.h.

References libMesh::FEMContext::get_dim().

Referenced by AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), A2::boundary_assembly(), AssemblyA2::boundary_assembly(), A3::boundary_assembly(), F0::boundary_assembly(), Output0::boundary_assembly(), libMesh::ParsedFEMFunction< T >::eval_args(), libMesh::FEMContext::get_side_fe(), libMesh::ParsedFEMFunction< T >::init_context(), SimpleRBConstruction::init_context(), and libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()().

300  { this->get_side_fe<OutputShape>(var,fe,this->get_dim()); }
unsigned char get_dim() const
Accessor for cached mesh dimension.
Definition: fem_context.h:899

◆ get_side_fe() [2/4]

FEBase* libMesh::FEMContext::get_side_fe ( unsigned int  var) const
inherited

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 310 of file fem_context.h.

References libMesh::FEMContext::get_dim(), and libMesh::FEMContext::get_side_fe().

311  { return this->get_side_fe(var,this->get_dim()); }
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 th...
Definition: fem_context.h:299
unsigned char get_dim() const
Accessor for cached mesh dimension.
Definition: fem_context.h:899

◆ get_side_fe() [3/4]

template<typename OutputShape >
void libMesh::FEMContext::get_side_fe ( unsigned int  var,
FEGenericBase< OutputShape > *&  fe,
unsigned short  dim 
) const
inherited

Accessor for edge/face (2D/3D) finite element object for variable var for dimension dim.

Definition at line 1223 of file fem_context.h.

References libMesh::FEMContext::_side_fe_var.

1225 {
1226  libmesh_assert( !_side_fe_var[dim].empty() );
1227  libmesh_assert_less ( var, (_side_fe_var[dim].size() ) );
1228  fe = cast_ptr<FEGenericBase<OutputShape> *>( (_side_fe_var[dim][var] ) );
1229 }
std::vector< std::vector< FEAbstract * > > _side_fe_var
Definition: fem_context.h:1107

◆ get_side_fe() [4/4]

FEBase * libMesh::FEMContext::get_side_fe ( unsigned int  var,
unsigned short  dim 
) const
inherited

Accessor for side finite element object for scalar-valued variable var for dimension dim.

Definition at line 1232 of file fem_context.h.

References libMesh::FEMContext::_side_fe_var.

1233 {
1234  libmesh_assert( !_side_fe_var[dim].empty() );
1235  libmesh_assert_less ( var, (_side_fe_var[dim].size() ) );
1236  return cast_ptr<FEBase *>( (_side_fe_var[dim][var] ) );
1237 }
std::vector< std::vector< FEAbstract * > > _side_fe_var
Definition: fem_context.h:1107

◆ get_side_qrule() [1/2]

const QBase& libMesh::FEMContext::get_side_qrule ( ) const
inherited

Accessor for element side quadrature rule for the dimension of the current _elem.

Definition at line 772 of file fem_context.h.

References libMesh::FEMContext::get_elem_dim().

Referenced by AssemblyA0::boundary_assembly(), AssemblyA1::boundary_assembly(), A2::boundary_assembly(), AssemblyA2::boundary_assembly(), A3::boundary_assembly(), F0::boundary_assembly(), and Output0::boundary_assembly().

773  { return this->get_side_qrule(this->get_elem_dim()); }
unsigned char get_elem_dim() const
Definition: fem_context.h:906
const QBase & get_side_qrule() const
Accessor for element side quadrature rule for the dimension of the current _elem. ...
Definition: fem_context.h:772

◆ get_side_qrule() [2/2]

const QBase& libMesh::FEMContext::get_side_qrule ( unsigned short  dim) const
inherited

Accessor for element side quadrature rule.

Definition at line 785 of file fem_context.h.

References libMesh::FEMContext::_side_qrule.

786  {
787  libmesh_assert(_side_qrule[dim]);
788  return *(this->_side_qrule[dim]);
789  }
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 ...
Definition: fem_context.h:1151

◆ get_system()

const System& libMesh::DiffContext::get_system ( ) const
inherited

Accessor for associated system.

Definition at line 105 of file diff_context.h.

References libMesh::DiffContext::_system.

106  { return _system; }
const System & _system
A reference to the system this context is constructed with.
Definition: diff_context.h:658

◆ get_system_time()

Real libMesh::DiffContext::get_system_time ( ) const
inherited

Accessor for the time variable stored in the system class.

Definition at line 415 of file diff_context.h.

References libMesh::DiffContext::system_time.

416  { return system_time; }
const Real system_time
This is the time stored in the System class at the time this context was created, i...
Definition: diff_context.h:494

◆ get_time()

Real libMesh::DiffContext::get_time ( ) const
inherited

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.

422  { return time; }
Real time
For time-dependent problems, this is the time t for which the current nonlinear_solution is defined...
Definition: diff_context.h:485

◆ has_elem()

bool libMesh::FEMContext::has_elem ( ) const
inherited

Test for current Elem object.

Definition at line 865 of file fem_context.h.

References libMesh::FEMContext::_elem.

866  { return (this->_elem != nullptr); }
const Elem * _elem
Current element for element_* to examine.
Definition: fem_context.h:1119

◆ has_side_boundary_id()

bool libMesh::FEMContext::has_side_boundary_id ( boundary_id_type  id) const
inherited

Reports if the boundary id is found on the current side.

Referenced by A2::boundary_assembly(), A3::boundary_assembly(), F0::boundary_assembly(), and Output0::boundary_assembly().

◆ interior_accel()

template<typename OutputType >
void libMesh::FEMContext::interior_accel ( unsigned int  var,
unsigned int  qp,
OutputType &  u 
) const
inherited
Returns
The second time derivative (acceleration) of the solution variable var at the quadrature point qp on the current element interior.

Referenced by SecondOrderScalarSystemSecondOrderTimeSolverBase::mass_residual(), and SecondOrderScalarSystemFirstOrderTimeSolverBase::mass_residual().

◆ interior_curl()

template<typename OutputType >
void libMesh::FEMContext::interior_curl ( unsigned int  var,
unsigned int  qp,
OutputType &  curl_u 
) const
inherited
Returns
The curl of the solution variable var at the physical point p on the current element.

◆ interior_div()

template<typename OutputType >
void libMesh::FEMContext::interior_div ( unsigned int  var,
unsigned int  qp,
OutputType &  div_u 
) const
inherited
Returns
The divergence of the solution variable var at the physical point p on the current element.

◆ interior_gradient() [1/2]

Gradient libMesh::FEMContext::interior_gradient ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The gradient of the solution variable var at the quadrature point qp on the current element interior.
Note
This API is currently present for backward compatibility.

◆ interior_gradient() [2/2]

template<typename OutputType >
void libMesh::FEMContext::interior_gradient ( unsigned int  var,
unsigned int  qp,
OutputType &  du 
) const
inherited
Returns
The gradient of the solution variable var at the quadrature point qp on the current element interior.
Note
This is the preferred API.

◆ interior_gradients()

template<typename OutputType >
void libMesh::FEMContext::interior_gradients ( unsigned int  var,
const NumericVector< Number > &  _system_vector,
std::vector< OutputType > &  interior_gradients_vector 
) const
inherited

Fills a vector with the gradient of the solution variable var at all the quadrature points in the current element interior.

Note
This is the preferred API.

◆ interior_hessian() [1/2]

Tensor libMesh::FEMContext::interior_hessian ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The hessian of the solution variable var at the quadrature point qp on the current element interior.
Note
This API is currently present for backward compatibility.

◆ interior_hessian() [2/2]

template<typename OutputType >
void libMesh::FEMContext::interior_hessian ( unsigned int  var,
unsigned int  qp,
OutputType &  d2u 
) const
inherited
Returns
The hessian of the solution variable var at the quadrature point qp on the current element interior.
Note
This is the preferred API.

◆ interior_hessians()

template<typename OutputType >
void libMesh::FEMContext::interior_hessians ( unsigned int  var,
const NumericVector< Number > &  _system_vector,
std::vector< OutputType > &  d2u_vals 
) const
inherited

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.

◆ interior_rate()

template<typename OutputType >
void libMesh::FEMContext::interior_rate ( unsigned int  var,
unsigned int  qp,
OutputType &  u 
) const
inherited
Returns
The time derivative (rate) of the solution variable var at the quadrature point qp on the current element interior.

Referenced by SecondOrderScalarSystemSecondOrderTimeSolverBase::damping_residual(), SecondOrderScalarSystemFirstOrderTimeSolverBase::damping_residual(), and FirstOrderScalarSystemBase::mass_residual().

◆ interior_value() [1/2]

Number libMesh::FEMContext::interior_value ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The value of the solution variable var at the quadrature point qp on the current element interior.
Note
This API is currently present for backward compatibility.

◆ interior_value() [2/2]

template<typename OutputType >
void libMesh::FEMContext::interior_value ( unsigned int  var,
unsigned int  qp,
OutputType &  u 
) const
inherited
Returns
The value of the solution variable var at the quadrature point qp on the current element interior.
Note
This is the preferred API.

◆ interior_values()

template<typename OutputType >
void libMesh::FEMContext::interior_values ( unsigned int  var,
const NumericVector< Number > &  _system_vector,
std::vector< OutputType > &  interior_values_vector 
) const
inherited

Fills a vector of values of the _system_vector at the all the quadrature points in the current element interior.

◆ is_adjoint() [1/2]

bool libMesh::DiffContext::is_adjoint ( ) const
inherited

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.

471  { return _is_adjoint; }
bool _is_adjoint
Is this context to be used for a primal or adjoint solve?
Definition: diff_context.h:663

◆ is_adjoint() [2/2]

bool& libMesh::DiffContext::is_adjoint ( )
inherited

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.

478  { return _is_adjoint; }
bool _is_adjoint
Is this context to be used for a primal or adjoint solve?
Definition: diff_context.h:663

◆ n_dof_indices() [1/2]

unsigned int libMesh::DiffContext::n_dof_indices ( ) const
inherited

Total number of dof indices on the element.

Definition at line 399 of file diff_context.h.

References libMesh::DiffContext::_dof_indices.

400  { return cast_int<unsigned int>(_dof_indices.size()); }
std::vector< dof_id_type > _dof_indices
Global Degree of freedom index lists.
Definition: diff_context.h:637

◆ n_dof_indices() [2/2]

unsigned int libMesh::DiffContext::n_dof_indices ( unsigned int  var) const
inherited

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.

407  {
408  libmesh_assert_greater(_dof_indices_var.size(), var);
409  return cast_int<unsigned int>(_dof_indices_var[var].size());
410  }
std::vector< std::vector< dof_id_type > > _dof_indices_var
Definition: diff_context.h:638

◆ n_vars()

unsigned int libMesh::DiffContext::n_vars ( ) const
inherited

Number of variables in solution.

Definition at line 99 of file diff_context.h.

References libMesh::DiffContext::_dof_indices_var.

100  { return cast_int<unsigned int>(_dof_indices_var.size()); }
std::vector< std::vector< dof_id_type > > _dof_indices_var
Definition: diff_context.h:638

◆ neighbor_side_fe_reinit()

void libMesh::DGFEMContext::neighbor_side_fe_reinit ( )

Initialize neighbor side data needed to assemble DG terms.

The neighbor element is determined by the current value of get_neighbor().

◆ nonlocal_reinit()

virtual void libMesh::FEMContext::nonlocal_reinit ( Real  theta)
overridevirtualinherited

Gives derived classes the opportunity to reinitialize data needed for nonlocal calculations at a new point within a timestep.

Reimplemented from libMesh::DiffContext.

◆ point_accel()

template<typename OutputType >
void libMesh::FEMContext::point_accel ( unsigned int  var,
const Point p,
OutputType &  u 
) const
inherited
Returns
The second time derivative (acceleration) of the solution variable var at the physical point p on the current element.

◆ point_curl()

template<typename OutputType >
void libMesh::FEMContext::point_curl ( unsigned int  var,
const Point p,
OutputType &  curl_u,
const Real  tolerance = TOLERANCE 
) const
inherited
Returns
The curl of the solution variable var at the physical point p on the current element.

Allows evaluation of points within a relative tolerance outside the element.

◆ point_gradient() [1/2]

Gradient libMesh::FEMContext::point_gradient ( unsigned int  var,
const Point p 
) const
inherited
Returns
The gradient of the solution variable var at the physical point p on the current element.
Note
This API is currently present for backward compatibility.

Referenced by libMesh::ParsedFEMFunction< T >::eval_args().

◆ point_gradient() [2/2]

template<typename OutputType >
void libMesh::FEMContext::point_gradient ( unsigned int  var,
const Point p,
OutputType &  grad_u,
const Real  tolerance = TOLERANCE 
) const
inherited
Returns
The gradient of the solution variable var at the physical point p on the current element.
Note
This is the preferred API.

Allows evaluation of points within a relative tolerance outside the element.

◆ point_hessian() [1/2]

Tensor libMesh::FEMContext::point_hessian ( unsigned int  var,
const Point p 
) const
inherited
Returns
The hessian of the solution variable var at the physical point p on the current element.
Note
This API currently present for backward compatibility.

Referenced by libMesh::ParsedFEMFunction< T >::eval_args().

◆ point_hessian() [2/2]

template<typename OutputType >
void libMesh::FEMContext::point_hessian ( unsigned int  var,
const Point p,
OutputType &  hess_u,
const Real  tolerance = TOLERANCE 
) const
inherited
Returns
The hessian of the solution variable var at the physical point p on the current element.
Note
This is the preferred API.

Allows evaluation of points within a relative tolerance outside the element.

◆ point_rate()

template<typename OutputType >
void libMesh::FEMContext::point_rate ( unsigned int  var,
const Point p,
OutputType &  u 
) const
inherited
Returns
The time derivative (rate) of the solution variable var at the physical point p on the current element.

◆ point_value() [1/2]

Number libMesh::FEMContext::point_value ( unsigned int  var,
const Point p 
) const
inherited
Returns
The value of the solution variable var at the physical point p on the current element.
Note
This API is currently present for backward compatibility.

Referenced by libMesh::ParsedFEMFunction< T >::eval_args().

◆ point_value() [2/2]

template<typename OutputType >
void libMesh::FEMContext::point_value ( unsigned int  var,
const Point p,
OutputType &  u,
const Real  tolerance = TOLERANCE 
) const
inherited
Returns
The value of the solution variable var at the physical point p on the current element.
Note
This is the preferred API.

Allows evaluation of points within a relative tolerance outside the element.

◆ pre_fe_reinit()

virtual void libMesh::FEMContext::pre_fe_reinit ( const System ,
const Elem e 
)
virtualinherited

Reinitializes local data vectors/matrices on the current geometric element.

Referenced by libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()().

◆ set_algebraic_type()

void libMesh::FEMContext::set_algebraic_type ( const AlgebraicType  atype)
inherited

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 948 of file fem_context.h.

References libMesh::FEMContext::_atype.

Referenced by libMesh::OldSolutionBase< Output, point_output >::init_context().

949  { _atype = atype; }
AlgebraicType _atype
Keep track of what type of algebra reinitialization is to be done.
Definition: fem_context.h:999

◆ set_custom_solution()

void libMesh::FEMContext::set_custom_solution ( const NumericVector< Number > *  custom_sol)
inherited

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 963 of file fem_context.h.

References libMesh::FEMContext::_custom_solution.

964  { _custom_solution = custom_sol; }
const NumericVector< Number > * _custom_solution
Data with which to do algebra reinitialization.
Definition: fem_context.h:1004

◆ set_deltat_pointer()

void libMesh::DiffContext::set_deltat_pointer ( Real dt)
inherited

Points the _deltat member of this class at a timestep value stored in the creating System, for example DiffSystem::deltat.

◆ set_elem()

void libMesh::FEMContext::set_elem ( const Elem e)
protectedinherited

Helper function to promote accessor usage.

◆ set_mesh_system()

virtual void libMesh::FEMContext::set_mesh_system ( System sys)
virtualinherited

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 805 of file fem_context.h.

References libMesh::FEMContext::_mesh_sys.

806  { this->_mesh_sys = sys; }
System * _mesh_sys
System from which to acquire moving mesh information.
Definition: fem_context.h:969

◆ set_mesh_x_var()

void libMesh::FEMContext::set_mesh_x_var ( unsigned int  x_var)
inherited

Accessor for x-variable of moving mesh System.

This should be set automatically if the FEMPhysics requires it.

Definition at line 831 of file fem_context.h.

References libMesh::FEMContext::_mesh_x_var.

832  { _mesh_x_var = x_var; }
unsigned int _mesh_x_var
Variables from which to acquire moving mesh information.
Definition: fem_context.h:974

◆ set_mesh_y_var()

void libMesh::FEMContext::set_mesh_y_var ( unsigned int  y_var)
inherited

Accessor for y-variable of moving mesh System.

This should be set automatically if the FEMPhysics requires it.

Definition at line 845 of file fem_context.h.

References libMesh::FEMContext::_mesh_y_var.

846  { _mesh_y_var = y_var; }
unsigned int _mesh_y_var
Definition: fem_context.h:974

◆ set_mesh_z_var()

void libMesh::FEMContext::set_mesh_z_var ( unsigned int  z_var)
inherited

Accessor for z-variable of moving mesh System.

This should be set automatically if the FEMPhysics requires it.

Definition at line 859 of file fem_context.h.

References libMesh::FEMContext::_mesh_z_var.

860  { _mesh_z_var = z_var; }
unsigned int _mesh_z_var
Definition: fem_context.h:974

◆ set_neighbor()

void libMesh::DGFEMContext::set_neighbor ( const Elem neighbor)

Set the neighbor element which we will use to assemble DG terms.

Note
We do not assume that this element is get_elem().neighbor(side) because we also need to be able to handle the special case of DG terms on "cracks" in a mesh to model certain types of interface conditions. In this case, we need to be able to specify the neighbor element manually. Also, this should give us more flexibility to handle non-conforming meshes.

Definition at line 220 of file dg_fem_context.h.

References _neighbor.

221  { _neighbor = &neighbor; }
const Elem * _neighbor
Current neighbor element for assembling DG terms.

◆ set_time()

void libMesh::DiffContext::set_time ( Real  time_in)
inherited

Set the time for which the current nonlinear_solution is defined.

Definition at line 427 of file diff_context.h.

References libMesh::DiffContext::time.

428  { time = time_in; }
Real time
For time-dependent problems, this is the time t for which the current nonlinear_solution is defined...
Definition: diff_context.h:485

◆ side_accel()

template<typename OutputType >
void libMesh::FEMContext::side_accel ( unsigned int  var,
unsigned int  qp,
OutputType &  u 
) const
inherited
Returns
The second time derivative (acceleration) of the solution variable var at the quadrature point qp on the current element side.

◆ side_boundary_ids() [1/2]

std::vector<boundary_id_type> libMesh::FEMContext::side_boundary_ids ( ) const
inherited

Lists the boundary ids found on the current side.

Deprecated:
Instead, use the version that takes a reference to a std::set.

◆ side_boundary_ids() [2/2]

void libMesh::FEMContext::side_boundary_ids ( std::vector< boundary_id_type > &  vec_to_fill) const
inherited

As above, but fills in the std::set provided by the user.

◆ side_fe_reinit()

virtual void libMesh::DGFEMContext::side_fe_reinit ( )
overridevirtual

Override side_fe_reinit to set a boolean flag so that by default DG terms are assumed to be inactive.

DG terms are only active if neighbor_side_fe_reinit is called.

Reimplemented from libMesh::FEMContext.

◆ side_gradient() [1/2]

Gradient libMesh::FEMContext::side_gradient ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The gradient of the solution variable var at the quadrature point qp on the current element side.
Note
This API is currently present for backward compatibility.

◆ side_gradient() [2/2]

template<typename OutputType >
void libMesh::FEMContext::side_gradient ( unsigned int  var,
unsigned int  qp,
OutputType &  du 
) const
inherited
Returns
The gradient of the solution variable var at the quadrature point qp on the current element side.
Note
This is the preferred API.

◆ side_gradients()

template<typename OutputType >
void libMesh::FEMContext::side_gradients ( unsigned int  var,
const NumericVector< Number > &  _system_vector,
std::vector< OutputType > &  side_gradients_vector 
) const
inherited

Fills a vector with the gradient of the solution variable var at all the quadrature points on the current element side.

Note
This is the preferred API.

◆ side_hessian() [1/2]

Tensor libMesh::FEMContext::side_hessian ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The hessian of the solution variable var at the quadrature point qp on the current element side.
Note
This API is currently present for backward compatibility.

◆ side_hessian() [2/2]

template<typename OutputType >
void libMesh::FEMContext::side_hessian ( unsigned int  var,
unsigned int  qp,
OutputType &  d2u 
) const
inherited
Returns
The hessian of the solution variable var at the quadrature point qp on the current element side.
Note
This is the preferred API.

◆ side_hessians()

template<typename OutputType >
void libMesh::FEMContext::side_hessians ( unsigned int  var,
const NumericVector< Number > &  _system_vector,
std::vector< OutputType > &  d2u_vals 
) const
inherited

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.

◆ side_rate()

template<typename OutputType >
void libMesh::FEMContext::side_rate ( unsigned int  var,
unsigned int  qp,
OutputType &  u 
) const
inherited
Returns
The time derivative (rate) of the solution variable var at the quadrature point qp on the current element side.

◆ side_value() [1/2]

Number libMesh::FEMContext::side_value ( unsigned int  var,
unsigned int  qp 
) const
inherited
Returns
The value of the solution variable var at the quadrature point qp on the current element side.
Note
This API currently is present for backward compatibility.

◆ side_value() [2/2]

template<typename OutputType >
void libMesh::FEMContext::side_value ( unsigned int  var,
unsigned int  qp,
OutputType &  u 
) const
inherited
Returns
The value of the solution variable var at the quadrature point qp on the current element side.
Note
This is the preferred API.

◆ side_values()

template<typename OutputType >
void libMesh::FEMContext::side_values ( unsigned int  var,
const NumericVector< Number > &  _system_vector,
std::vector< OutputType > &  side_values_vector 
) const
inherited

Fills a vector of values of the _system_vector at the all the quadrature points on the current element side.

◆ some_gradient()

template<typename OutputType , typename FENeeded< OutputType >::grad_getter fe_getter, diff_subsolution_getter subsolution_getter>
void libMesh::FEMContext::some_gradient ( unsigned int  var,
unsigned int  qp,
OutputType &  u 
) const
protectedinherited

Helper function to reduce some code duplication in the *interior_gradient methods.

◆ some_hessian()

template<typename OutputType , typename FENeeded< OutputType >::hess_getter fe_getter, diff_subsolution_getter subsolution_getter>
void libMesh::FEMContext::some_hessian ( unsigned int  var,
unsigned int  qp,
OutputType &  u 
) const
protectedinherited

Helper function to reduce some code duplication in the *interior_hessian methods.

◆ some_value()

template<typename OutputType , typename FENeeded< OutputType >::value_getter fe_getter, diff_subsolution_getter subsolution_getter>
void libMesh::FEMContext::some_value ( unsigned int  var,
unsigned int  qp,
OutputType &  u 
) const
protectedinherited

Helper function to reduce some code duplication in the *interior_value methods.

Member Data Documentation

◆ _atype

AlgebraicType libMesh::FEMContext::_atype
protectedinherited

Keep track of what type of algebra reinitialization is to be done.

Definition at line 999 of file fem_context.h.

Referenced by libMesh::FEMContext::algebraic_type(), and libMesh::FEMContext::set_algebraic_type().

◆ _boundary_info

const BoundaryInfo& libMesh::FEMContext::_boundary_info
protectedinherited

Saved reference to BoundaryInfo on the mesh for this System.

Used to answer boundary id requests.

Definition at line 1114 of file fem_context.h.

◆ _custom_solution

const NumericVector<Number>* libMesh::FEMContext::_custom_solution
protectedinherited

Data with which to do algebra reinitialization.

Definition at line 1004 of file fem_context.h.

Referenced by libMesh::FEMContext::set_custom_solution().

◆ _dg_terms_active

bool libMesh::DGFEMContext::_dg_terms_active
private

Boolean flag to indicate whether or not the DG terms have been assembled and should be used in the global matrix assembly.

Definition at line 296 of file dg_fem_context.h.

Referenced by dg_terms_are_active().

◆ _dim

unsigned char libMesh::FEMContext::_dim
protectedinherited

Cached dimension of largest dimension element in this mesh.

Definition at line 1124 of file fem_context.h.

Referenced by libMesh::FEMContext::get_dim().

◆ _dof_indices

std::vector<dof_id_type> libMesh::DiffContext::_dof_indices
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().

◆ _dof_indices_var

std::vector<std::vector<dof_id_type> > libMesh::DiffContext::_dof_indices_var
protectedinherited

◆ _edge_fe

std::map<FEType, std::unique_ptr<FEAbstract> > libMesh::FEMContext::_edge_fe
protectedinherited

Definition at line 1097 of file fem_context.h.

◆ _edge_fe_var

std::vector<FEAbstract *> libMesh::FEMContext::_edge_fe_var
protectedinherited

Definition at line 1108 of file fem_context.h.

Referenced by libMesh::FEMContext::get_edge_fe().

◆ _edge_qrule

std::unique_ptr<QBase> libMesh::FEMContext::_edge_qrule
protectedinherited

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 1160 of file fem_context.h.

Referenced by libMesh::FEMContext::get_edge_qrule().

◆ _elem

const Elem* libMesh::FEMContext::_elem
protectedinherited

Current element for element_* to examine.

Definition at line 1119 of file fem_context.h.

Referenced by libMesh::FEMContext::get_elem(), and libMesh::FEMContext::has_elem().

◆ _elem_dim

unsigned char libMesh::FEMContext::_elem_dim
protectedinherited

Cached dimension of this->_elem.

Definition at line 1129 of file fem_context.h.

Referenced by libMesh::FEMContext::get_elem_dim().

◆ _elem_dims

std::set<unsigned char> libMesh::FEMContext::_elem_dims
protectedinherited

Cached dimensions of elements in the mesh, plus dimension 0 if SCALAR variables are in use.

Definition at line 1135 of file fem_context.h.

Referenced by libMesh::FEMContext::elem_dimensions().

◆ _elem_elem_jacobian

DenseMatrix<Number> libMesh::DGFEMContext::_elem_elem_jacobian
private

The DG Jacobian terms.

Trial and test functions come from either element or neighbor.

Definition at line 257 of file dg_fem_context.h.

Referenced by get_elem_elem_jacobian().

◆ _elem_elem_subjacobians

std::vector<std::vector<std::unique_ptr<DenseSubMatrix<Number> > > > libMesh::DGFEMContext::_elem_elem_subjacobians
private

Definition at line 266 of file dg_fem_context.h.

Referenced by get_elem_elem_jacobian().

◆ _elem_fixed_solution

DenseVector<Number> libMesh::DiffContext::_elem_fixed_solution
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::get_elem_fixed_solution().

◆ _elem_fixed_subsolutions

std::vector<std::unique_ptr<DenseSubVector<Number> > > libMesh::DiffContext::_elem_fixed_subsolutions
protectedinherited

Definition at line 604 of file diff_context.h.

Referenced by libMesh::DiffContext::get_elem_fixed_solution().

◆ _elem_jacobian

DenseMatrix<Number> libMesh::DiffContext::_elem_jacobian
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::get_elem_jacobian().

◆ _elem_neighbor_jacobian

DenseMatrix<Number> libMesh::DGFEMContext::_elem_neighbor_jacobian
private

Definition at line 258 of file dg_fem_context.h.

Referenced by get_elem_neighbor_jacobian().

◆ _elem_neighbor_subjacobians

std::vector<std::vector<std::unique_ptr<DenseSubMatrix<Number> > > > libMesh::DGFEMContext::_elem_neighbor_subjacobians
private

Definition at line 267 of file dg_fem_context.h.

Referenced by get_elem_neighbor_jacobian().

◆ _elem_qoi

std::vector<Number> libMesh::DiffContext::_elem_qoi
protectedinherited

Element quantity of interest contributions.

Definition at line 620 of file diff_context.h.

Referenced by libMesh::DiffContext::get_qois().

◆ _elem_qoi_derivative

std::vector<DenseVector<Number> > libMesh::DiffContext::_elem_qoi_derivative
protectedinherited

Element quantity of interest derivative contributions.

Definition at line 625 of file diff_context.h.

Referenced by libMesh::DiffContext::get_qoi_derivatives().

◆ _elem_qoi_subderivatives

std::vector<std::vector<std::unique_ptr<DenseSubVector<Number> > > > libMesh::DiffContext::_elem_qoi_subderivatives
protectedinherited

Definition at line 626 of file diff_context.h.

Referenced by libMesh::DiffContext::get_qoi_derivatives().

◆ _elem_residual

DenseVector<Number> libMesh::DiffContext::_elem_residual
protectedinherited

Element residual vector.

Definition at line 609 of file diff_context.h.

Referenced by libMesh::DiffContext::get_elem_residual().

◆ _elem_solution

DenseVector<Number> libMesh::DiffContext::_elem_solution
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::get_elem_solution().

◆ _elem_solution_accel

DenseVector<Number> libMesh::DiffContext::_elem_solution_accel
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::get_elem_solution_accel().

◆ _elem_solution_rate

DenseVector<Number> libMesh::DiffContext::_elem_solution_rate
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::get_elem_solution_rate().

◆ _elem_subjacobians

std::vector<std::vector<std::unique_ptr<DenseSubMatrix<Number> > > > libMesh::DiffContext::_elem_subjacobians
protectedinherited

Definition at line 632 of file diff_context.h.

Referenced by libMesh::DiffContext::get_elem_jacobian().

◆ _elem_subresiduals

std::vector<std::unique_ptr<DenseSubVector<Number> > > libMesh::DiffContext::_elem_subresiduals
protectedinherited

Element residual subvectors and Jacobian submatrices.

Definition at line 631 of file diff_context.h.

Referenced by libMesh::DiffContext::get_elem_residual().

◆ _elem_subsolution_accels

std::vector<std::unique_ptr<DenseSubVector<Number> > > libMesh::DiffContext::_elem_subsolution_accels
protectedinherited

Definition at line 596 of file diff_context.h.

Referenced by libMesh::DiffContext::get_elem_solution_accel().

◆ _elem_subsolution_rates

std::vector<std::unique_ptr<DenseSubVector<Number> > > libMesh::DiffContext::_elem_subsolution_rates
protectedinherited

Definition at line 589 of file diff_context.h.

Referenced by libMesh::DiffContext::get_elem_solution_rate().

◆ _elem_subsolutions

std::vector<std::unique_ptr<DenseSubVector<Number> > > libMesh::DiffContext::_elem_subsolutions
protectedinherited

Definition at line 582 of file diff_context.h.

Referenced by libMesh::DiffContext::get_elem_solution().

◆ _element_fe

std::vector<std::map<FEType, std::unique_ptr<FEAbstract> > > libMesh::FEMContext::_element_fe
protectedinherited

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 1095 of file fem_context.h.

◆ _element_fe_var

std::vector<std::vector<FEAbstract *> > libMesh::FEMContext::_element_fe_var
protectedinherited

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 1106 of file fem_context.h.

Referenced by libMesh::FEMContext::get_element_fe().

◆ _element_qrule

std::vector<std::unique_ptr<QBase> > libMesh::FEMContext::_element_qrule
protectedinherited

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 1143 of file fem_context.h.

Referenced by libMesh::FEMContext::get_element_qrule().

◆ _extra_quadrature_order

int libMesh::FEMContext::_extra_quadrature_order
protectedinherited

The extra quadrature order for this context.

Definition at line 1165 of file fem_context.h.

◆ _localized_vectors

std::map<const NumericVector<Number> *, std::pair<DenseVector<Number>, std::vector<std::unique_ptr<DenseSubVector<Number> > > > > libMesh::DiffContext::_localized_vectors
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.

◆ _mesh_sys

System* libMesh::FEMContext::_mesh_sys
inherited

System from which to acquire moving mesh information.

Definition at line 969 of file fem_context.h.

Referenced by libMesh::FEMContext::elem_position_set(), libMesh::FEMContext::get_mesh_system(), and libMesh::FEMContext::set_mesh_system().

◆ _mesh_x_var

unsigned int libMesh::FEMContext::_mesh_x_var
inherited

Variables from which to acquire moving mesh information.

Definition at line 974 of file fem_context.h.

Referenced by libMesh::FEMContext::get_mesh_x_var(), and libMesh::FEMContext::set_mesh_x_var().

◆ _mesh_y_var

unsigned int libMesh::FEMContext::_mesh_y_var
inherited

◆ _mesh_z_var

unsigned int libMesh::FEMContext::_mesh_z_var
inherited

◆ _neighbor

const Elem* libMesh::DGFEMContext::_neighbor
private

Current neighbor element for assembling DG terms.

Definition at line 246 of file dg_fem_context.h.

Referenced by get_neighbor(), and set_neighbor().

◆ _neighbor_dof_indices

std::vector<dof_id_type> libMesh::DGFEMContext::_neighbor_dof_indices
private

Global Degree of freedom index lists for the neighbor element.

Definition at line 274 of file dg_fem_context.h.

Referenced by get_neighbor_dof_indices().

◆ _neighbor_dof_indices_var

std::vector<std::vector<dof_id_type> > libMesh::DGFEMContext::_neighbor_dof_indices_var
private

Definition at line 275 of file dg_fem_context.h.

Referenced by get_neighbor_dof_indices().

◆ _neighbor_elem_jacobian

DenseMatrix<Number> libMesh::DGFEMContext::_neighbor_elem_jacobian
private

Definition at line 259 of file dg_fem_context.h.

Referenced by get_neighbor_elem_jacobian().

◆ _neighbor_elem_subjacobians

std::vector<std::vector<std::unique_ptr<DenseSubMatrix<Number> > > > libMesh::DGFEMContext::_neighbor_elem_subjacobians
private

Definition at line 268 of file dg_fem_context.h.

Referenced by get_neighbor_elem_jacobian().

◆ _neighbor_neighbor_jacobian

DenseMatrix<Number> libMesh::DGFEMContext::_neighbor_neighbor_jacobian
private

Definition at line 260 of file dg_fem_context.h.

Referenced by get_neighbor_neighbor_jacobian().

◆ _neighbor_neighbor_subjacobians

std::vector<std::vector<std::unique_ptr<DenseSubMatrix<Number> > > > libMesh::DGFEMContext::_neighbor_neighbor_subjacobians
private

Definition at line 269 of file dg_fem_context.h.

Referenced by get_neighbor_neighbor_jacobian().

◆ _neighbor_residual

DenseVector<Number> libMesh::DGFEMContext::_neighbor_residual
private

Residual vector of the neighbor component.

Definition at line 251 of file dg_fem_context.h.

Referenced by get_neighbor_residual().

◆ _neighbor_side_fe

std::map<FEType, std::unique_ptr<FEAbstract> > libMesh::DGFEMContext::_neighbor_side_fe
private

Finite element objects for each variable's sides on the neighbor element.

We do not need FE objects for neighbor element interior since we just need to handle DG interface terms here.

Definition at line 284 of file dg_fem_context.h.

◆ _neighbor_side_fe_var

std::vector<FEAbstract *> libMesh::DGFEMContext::_neighbor_side_fe_var
private

Pointers to the same finite element objects on the neighbor element, but indexed by variable number.

Definition at line 290 of file dg_fem_context.h.

Referenced by get_neighbor_side_fe().

◆ _neighbor_subresiduals

std::vector<std::unique_ptr<DenseSubVector<Number> > > libMesh::DGFEMContext::_neighbor_subresiduals
private

Element residual subvectors and Jacobian submatrices.

Definition at line 265 of file dg_fem_context.h.

Referenced by get_neighbor_residual().

◆ _real_fe

std::unique_ptr<FEGenericBase<Real> > libMesh::FEMContext::_real_fe
mutableprotectedinherited

Definition at line 1006 of file fem_context.h.

◆ _real_fe_is_inf

bool libMesh::FEMContext::_real_fe_is_inf
mutableprotectedinherited

Definition at line 1010 of file fem_context.h.

◆ _real_grad_fe

std::unique_ptr<FEGenericBase<RealGradient> > libMesh::FEMContext::_real_grad_fe
mutableprotectedinherited

Definition at line 1007 of file fem_context.h.

◆ _real_grad_fe_is_inf

bool libMesh::FEMContext::_real_grad_fe_is_inf
mutableprotectedinherited

Definition at line 1011 of file fem_context.h.

◆ _side_fe

std::vector<std::map<FEType, std::unique_ptr<FEAbstract> > > libMesh::FEMContext::_side_fe
protectedinherited

Definition at line 1096 of file fem_context.h.

◆ _side_fe_var

std::vector<std::vector<FEAbstract *> > libMesh::FEMContext::_side_fe_var
protectedinherited

Definition at line 1107 of file fem_context.h.

Referenced by libMesh::FEMContext::get_side_fe().

◆ _side_qrule

std::vector<std::unique_ptr<QBase> > libMesh::FEMContext::_side_qrule
protectedinherited

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 1151 of file fem_context.h.

Referenced by libMesh::FEMContext::get_side_qrule().

◆ edge

unsigned char libMesh::FEMContext::edge
inherited

◆ elem_solution_accel_derivative

Real libMesh::DiffContext::elem_solution_accel_derivative
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::DiffContext::get_elem_solution_accel_derivative().

◆ elem_solution_derivative

Real libMesh::DiffContext::elem_solution_derivative
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::DiffContext::get_elem_solution_derivative().

◆ elem_solution_rate_derivative

Real libMesh::DiffContext::elem_solution_rate_derivative
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::DiffContext::get_elem_solution_rate_derivative().

◆ fixed_solution_derivative

Real libMesh::DiffContext::fixed_solution_derivative
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::DiffContext::get_fixed_solution_derivative().

◆ side

unsigned char libMesh::FEMContext::side
inherited

◆ system_time

const Real libMesh::DiffContext::system_time
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().

◆ time

Real libMesh::DiffContext::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(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::operator()(), and libMesh::DiffContext::set_time().


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