15#include "libmesh/point.h"
16#include "libmesh/vector_value.h"
17#include "libmesh/elem.h"
52 virtual void compute()
override;
61 virtual T
value(
const Point & p) = 0;
94 Real
dotHelper(
const RealTensor & op1,
const RealTensor & op2) {
return op1.contract(op2); }
97 RealEigenVector v = op1.col(0) * op2(0);
99 v += op1.col(i) * op2(i);
147 DenseVector<DataType>
_Fe;
149 DenseVector<DataType>
_Ue;
179 const std::vector<std::vector<ValueType>> *
_phi;
181 const std::vector<std::vector<GradientShapeType>> *
_dphi;
183 const std::vector<Real> *
_JxW;
InitialConditionTempl< RealEigenVector > ArrayInitialCondition
InitialConditionTempl< Real > InitialCondition
InitialConditionTempl< RealVectorValue > VectorInitialCondition
Keeps track of stuff related to assembling.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
InitialConditionBase serves as the abstract base class for InitialConditions and VectorInitialConditi...
static InputParameters validParams()
This is a template class that implements the workhorse compute and computeNodal methods.
Real dotHelper(const libMesh::RealGradient &op1, const libMesh::RealGradient &op2)
Helps perform multiplication of GradientTypes: a normal dot product for vectors and a contraction for...
std::vector< char > _dof_is_fixed
Whether the degree of freedom is fixed (true/false)
std::vector< unsigned int > _side_dofs
Side/edge DOF indices.
unsigned int _n_nodes
The number of nodes for a given element.
const std::vector< std::vector< GradientShapeType > > * _dphi
pointers to shape function gradients
void choleskyAssembly(bool is_volume)
Assemble a small local system for cholesky solve.
dof_id_type _nc
number of dofs per node per variable
unsigned int _n_qp
The number of quadrature points for a given element.
void setCZeroVertices()
set the temporary solution vector for node projections of C0 variables
OutputTools< T >::OutputData DataType
const libMesh::FEType & _fe_type
The finite element type for the IC variable.
void choleskySolve(bool is_volume)
Perform the cholesky solves for edge, side, and interior projections.
virtual GradientType gradient(const Point &)
The gradient of the variable at a point.
virtual MooseVariableFEBase & variable() override
retrieves the MOOSE variable that this initial condition acts upon
const std::vector< Real > * _JxW
pointers to the Jacobian * quadrature weights for current element
unsigned int _dim
the mesh dimension
DenseMatrix< Real > _Ke
Matrix storage member.
dof_id_type _current_dof
The current dof being operated on.
FEProblemBase & _fe_problem
OutputTools< T >::OutputGradient GradientType
libMesh::FEGenericBase< ValueType > FEBaseType
virtual void computeNodal(const Point &p) override
Workhorse method for projecting the initial conditions for boundary restricted initial conditions.
virtual void compute() override
Workhorse method for projecting the initial conditions for block initial conditions.
unsigned int _n
node counter
OutputTools< T >::OutputShapeGradient GradientShapeType
DenseVector< DataType > _Fe
Linear b vector.
Assembly & _assembly
the finite element/volume assembly object
const std::vector< dof_id_type > & _dof_indices
The global DOF indices.
virtual T value(const Point &p)=0
The value of the variable at a point.
RealEigenVector dotHelper(const RealVectorArrayValue &op1, const libMesh::RealGradient &op2)
const Real & _current_elem_volume
the volume of the current element
T gradientComponent(GradientType grad, unsigned int i)
const Node * _current_node
The current node if the point we are evaluating at also happens to be a node.
libMesh::FEContinuity _cont
The type of continuity, e.g. C0, C1.
const Elem *const & _current_elem
The current element we are on will retrieving values at specific points in the domain.
OutputTools< T >::OutputShape ValueType
MooseVariableField< T > & _var
The variable that this initial condition is acting upon.
dof_id_type _free_dofs
The number of free dofs.
virtual ~InitialConditionTempl()
void setOtherCOneVertices()
set the temporary solution vector for node projections of non-Hermitian C1 variables
static InputParameters validParams()
const Moose::CoordinateSystemType & _coord_sys
The coordinate system type for this problem, references the value in Assembly.
const std::vector< Point > * _xyz_values
pointers to the xyz coordinates of the quadrature points for the current element
MooseVariableFE< T > * _fe_var
DenseVector< DataType > _Ue
Linear solution vector.
Real dotHelper(const RealTensor &op1, const RealTensor &op2)
std::vector< int > _free_dof
Stores the ids of the free dofs.
unsigned int _qp
The current quadrature point, contains the "nth" node number when visiting nodes.
void setHermiteVertices()
set the temporary solution vector for node projections of Hermite variables
const std::vector< std::vector< ValueType > > * _phi
pointers to shape functions
const InputParameters & parameters() const
Get the parameters of the object.
Class for stuff related to variables.
This class provides an interface for common operations on field variables of both FE and FV types wit...
Class for stuff related to variables.
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.