18#include "libmesh/tensor_tools.h"
19#include "libmesh/vector_value.h"
20#include "libmesh/tensor_value.h"
21#include "libmesh/type_n_tensor.h"
22#include "libmesh/fe_type.h"
23#include "libmesh/dof_map.h"
24#include "libmesh/enum_fe_family.h"
50template <
typename OutputType>
81 const Elem *
const & elem);
83 bool isNodal()
const override {
return false; }
118 void getDofIndices(
const Elem * elem, std::vector<dof_id_type> & dof_indices)
const;
123 const std::vector<dof_id_type> &
dofIndices()
const;
239template <
typename OutputType>
240const std::vector<dof_id_type> &
246template <
typename OutputType>
250 return dofIndices().size();
std::array< Real, 2 > values
Keeps track of stuff related to assembling.
This data structure is used to store geometric and variable related metadata about each cell face in ...
This class provides variable solution interface for linear finite volume problems.
OutputType _nodal_value_dotdot
nodal values of u_dotdot
std::vector< dof_id_type > _dof_indices
The dof indices for the current element.
OutputType _nodal_value_dot_old
nodal values of u_dot_old
bool _need_dof_values_dot
local solution flags
std::vector< FieldVariableValue > _vector_tag_u
TagID _previous_nl_solution_tag
The vector tag ID corresponding to the previous nonlinear iteration's solution vector.
bool _need_u_dot
u dot flags
DofValues _dof_values_dotdot
second time derivative of the solution values
TagID _old_solution_tag
The vector tag ID corresponding to the old solution vector.
SystemBase & _sys
The MOOSE system which ultimately holds the vectors and matrices relevant to this variable data.
std::vector< FieldVariableValue > _matrix_tag_u
bool _need_dof_du_dotdot_du
std::vector< bool > _need_matrix_tag_u
Moose::DOFType< OutputType >::type DofValue
void fetchDofValues()
Helper methods for assigning dof values from their corresponding solution values.
const libMesh::DofMap & _dof_map
The degree of freedom map from libMesh.
OutputType _nodal_value_dotdot_old
nodal values of u_dotdot_old
std::vector< DofValues > _vector_tags_dof_u
TagID _solution_tag
The vector tag ID corresponding to the solution vector.
bool _need_dof_values_dotdot_old
std::vector< bool > _need_matrix_tag_dof_u
std::vector< DofValues > _matrix_tags_dof_u
bool _need_dof_values_dotdot
TagID _older_solution_tag
The vector tag ID corresponding to the older solution vector.
std::vector< bool > _need_vector_tag_u
DofValues _dof_values_dot_old
the previous time step's solution value time derivative
DofValues _dof_values_dot
time derivative of the solution values
MooseArray< libMesh::Number > _dof_du_dotdot_du
derivatives of the solution value second time derivative with respect to the degrees of freedom
std::vector< FieldVariableGradient > _vector_tag_grad
DofValues _dof_values_dotdot_old
the previous time step's solution value second time derivative
bool _need_dof_values_dot_old
std::set< TagID > _required_vector_tags
The set of vector tags (residual + solution) we need to evaluate.
const THREAD_ID _tid
The thread ID that this object is on.
std::vector< bool > _need_vector_tag_dof_u
bool _need_grad_dot
gradient dot flags
OutputType _nodal_value_dot
nodal values of u_dot
const SubProblem & _subproblem
The subproblem which we can query for information related to tagged vectors and matrices.
bool _has_dof_values
Whether we currently have degree of freedom values stored in our local containers (corresponding to t...
MooseArray< libMesh::Number > _dof_du_dot_du
derivatives of the solution value time derivative with respect to the degrees of freedom
std::vector< bool > _need_vector_tag_grad
Class holding the data members for linear finite volume variables.
void setGeometry(Moose::GeometryType gm_type)
Set the geometry type before calculating variables values.
void prepareIC()
Prepare the initial condition: initialize DOF indices and resize the DOF value array.
void initializeSolnVars()
virtual const MooseLinearVariableFV< OutputType > & var() const override
Get the corresponding variable.
void setDofValues(const DenseVector< DofValue > &values)
Set local DOF values to the entries of values .
unsigned int numberOfDofs() const
Get the number of dofs on the current element.
const MooseLinearVariableFV< OutputType > & _var
A const reference to the owning MooseLinearVariableFV object.
MooseArray< OutputGradient > FieldVariableGradient
libMesh::TensorTools::IncrementRank< OutputGradient >::type OutputSecond
libMesh::TensorTools::IncrementRank< OutputShape >::type OutputShapeGradient
MooseArray< OutputType > FieldVariableCurl
const std::vector< dof_id_type > & dofIndices() const
Get the dof indices of the current element.
bool hasDoFsOnNodes() const override
Whether this data is associated with a variable that has DoFs on nodes.
libMesh::TensorTools::DecrementRank< OutputShape >::type OutputShapeDivergence
const Elem *const & _elem
The current elem.
MooseArray< OutputSecond > FieldVariableSecond
const bool _displaced
Whether this variable is being calculated on a displaced system.
const libMesh::QBase * _qrule
Pointer to the quadrature rule.
libMesh::TensorTools::IncrementRank< OutputType >::type OutputGradient
libMesh::TensorTools::IncrementRank< OutputShapeGradient >::type OutputShapeSecond
Moose::ElementType _element_type
The element type this object is storing data for. This is either Element, Neighbor,...
MooseArray< OutputDivergence > FieldVariableDivergence
const TimeIntegrator *const _time_integrator
Pointer to time integrator.
bool isNodal() const override
Moose::ShapeType< OutputType >::type OutputShape
const Assembly & _assembly
Reference to the system assembly of the variable.
libMesh::FEContinuity getContinuity() const override
Return the variable continuity.
libMesh::TensorTools::DecrementRank< OutputType >::type OutputDivergence
const Elem * _prev_elem
used to keep track of when dof indices are out of date
const libMesh::FEType & _fe_type
Reference to the variable's finite element type.
void getDofIndices(const Elem *elem, std::vector< dof_id_type > &dof_indices) const
Get the dof indices for an element.
void setDofValue(const DofValue &value, unsigned int index)
Set local DOF value at index to value .
MooseArray< OutputType > FieldVariableValue
const unsigned int _var_num
The index of the variable in the system.
void clearDofIndices()
Clear the dof indices in the cache.
void computeValues()
Compute the variable values.
const std::vector< dof_id_type > & initDofIndices()
Fetch and return the dof indices of this variable on the current element.
This class provides variable solution values for other classes/objects to bind to when looping over f...
Base class for a system (of equations)
Base class for time integrators.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...