18 #include "libmesh/system.h" 19 #include "libmesh/transient_system.h" 23 template <
typename ComputeValueType>
52 virtual void reinit()
override;
60 virtual void addVariable(
const std::string & var_type,
61 const std::string &
name,
70 void addKernel(
const std::string & kernel_name,
71 const std::string &
name,
74 #ifdef MOOSE_KOKKOS_ENABLED 76 const std::string &
name,
87 const std::string &
name,
102 std::vector<dof_id_type> & ,
103 std::vector<dof_id_type> & )
override;
111 #ifdef MOOSE_KOKKOS_ENABLED 157 #ifdef MOOSE_KOKKOS_ENABLED 176 template <
typename AuxKernelType>
179 template <
typename AuxKernelType>
197 std::vector<std::vector<MooseVariableFieldBase *>>
_elem_vars;
216 #ifdef MOOSE_KOKKOS_ENABLED 269 #ifdef MOOSE_KOKKOS_ENABLED
ExecuteMooseObjectWarehouse< AuxKernel > _nodal_aux_storage
ExecuteMooseObjectWarehouse< AuxKernel > _mortar_nodal_aux_storage
virtual void timestepSetup() override
void computeNodalVarsHelper(const MooseObjectWarehouse< AuxKernelType > &warehouse)
Base class for auxiliary kernels.
void computeScalarVars(ExecFlagType type)
const ExecuteMooseObjectWarehouse< VectorAuxKernel > & nodalVectorAuxWarehouse() const
virtual void copyCurrentIntoPreviousNL()
Copies the current solution into the previous nonlinear iteration solution.
virtual void reinit() override
Reinitialize the system when the degrees of freedom in this system have changed.
AuxiliarySystem(FEProblemBase &subproblem, const std::string &name)
ExecuteMooseObjectWarehouse< ArrayAuxKernel > _nodal_array_aux_storage
virtual void updateActive(THREAD_ID tid)
const NumericVector< Number > *const & currentSolution() const override
The solution vector that is currently being operated on.
AuxKernelTempl< RealEigenVector > ArrayAuxKernel
void computeElementalVarsHelper(const MooseObjectWarehouse< AuxKernelType > &warehouse)
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
const NumericVector< Number > * _current_solution
solution vector from nonlinear solver
Base class for a system (of equations)
ExecuteMooseObjectWarehouse< AuxScalarKernel > _aux_scalar_storage
bool needMaterialOnSide(BoundaryID bnd_id)
Indicated whether this system needs material properties on boundaries.
virtual void reinitElem(const Elem *elem, THREAD_ID tid) override
Reinit an element assembly info.
virtual void residualSetup() override
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
void computeMortarNodalVars(ExecFlagType type)
A class for storing MooseObjects based on execution flag.
const ExecuteMooseObjectWarehouse< AuxKernel > & nodalAuxWarehouse() const
const ExecuteMooseObjectWarehouse< AuxKernel > & elemAuxWarehouse() const
const std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number > > > & linearFVLimitedGradientContainer(const Moose::FV::GradientLimiterType limiter_type) const
Access the stored raw or limited cell-centered gradient components.
void requestLinearFVLimitedGradients(const Moose::FV::GradientLimiterType limiter_type, unsigned int variable_number)
Request storage and assembly of limiter-specific cell gradients.
virtual const std::string & name() const
ExecuteMooseObjectWarehouse< AuxKernelBase > _kokkos_elemental_aux_storage
void setScalarVariableCoupleableTags(ExecFlagType type)
void clearScalarVariableCoupleableTags()
std::set< std::string > getDependObjects()
virtual void jacobianSetup() override
ExecuteMooseObjectWarehouse< ArrayAuxKernel > _elemental_array_aux_storage
void computeNodalArrayVars(ExecFlagType type)
void computeElementalVars(ExecFlagType type)
Base class for making kernels that work on auxiliary scalar variables.
boundary_id_type BoundaryID
const ExecuteMooseObjectWarehouse< AuxKernelBase > & kokkosElemAuxWarehouse() const
SubProblem & subproblem()
virtual libMesh::Order getMinQuadratureOrder() override
Get the minimum quadrature order for evaluating elemental auxiliary variables.
std::unique_ptr< NumericVector< Number > > solution
const ExecuteMooseObjectWarehouse< VectorAuxKernel > & elemVectorAuxWarehouse() const
void kokkosCompute(ExecFlagType type)
const ExecuteMooseObjectWarehouse< AuxKernelBase > & kokkosNodalAuxWarehouse() const
virtual void addVariable(const std::string &var_type, const std::string &name, InputParameters ¶meters) override
Canonical method for adding a variable.
Interface for objects interacting with the PerfGraph.
std::vector< NumericVector< Number > * > _solution_state
The current states of the solution (0 = current, 1 = old, etc)
virtual const libMesh::System & system() const override
AuxKernelTempl< RealVectorValue > VectorAuxKernel
virtual void reinitElemFace(const Elem *elem, unsigned int side, THREAD_ID tid) override
Reinit assembly info for a side of an element.
virtual ~AuxiliarySystem()
virtual void augmentSparsity(libMesh::SparsityPattern::Graph &, std::vector< dof_id_type > &, std::vector< dof_id_type > &) override
Will modify the sparsity pattern to add logical geometric connections.
std::vector< std::vector< MooseVariableFEBase * > > _nodal_vars
virtual libMesh::System & sys()
virtual void initialSetup() override
Setup Functions.
ExecuteMooseObjectWarehouse< VectorAuxKernel > _nodal_vec_aux_storage
std::vector< std::vector< MooseVariableFieldBase * > > _elem_vars
Elemental variables.
ExecuteMooseObjectWarehouse< AuxKernelBase > _kokkos_nodal_aux_storage
Base class for time integrators.
void addKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
Adds an auxiliary kernel.
Class for containing MooseEnum item information.
virtual void compute(ExecFlagType type) override
Compute auxiliary variables.
void addKokkosKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
void computeNodalVars(ExecFlagType type)
const ExecuteMooseObjectWarehouse< ArrayAuxKernel > & elemArrayAuxWarehouse() const
void addScalarKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
Adds a scalar kernel.
ExecuteMooseObjectWarehouse< AuxKernel > _elemental_aux_storage
Base class for creating new auxiliary kernels and auxiliary boundary conditions.
virtual void customSetup(const ExecFlagType &exec_type) override
virtual void serializeSolution()
void computeNodalVecVars(ExecFlagType type)
virtual libMesh::System & system() override
Get the reference to the libMesh system.
AuxKernelTempl< Real > AuxKernel
void computeElementalArrayVars(ExecFlagType type)
const ExecuteMooseObjectWarehouse< ArrayAuxKernel > & nodalArrayAuxWarehouse() const
ExecuteMooseObjectWarehouse< VectorAuxKernel > _elemental_vec_aux_storage
A system that holds auxiliary variables.
void variableWiseRelativeSolutionDifferenceNorm(std::vector< Number > &var_diffs) const
Computes and stores ||current - old|| / ||current|| for each variable in the given vector...
void computeElementalVecVars(ExecFlagType type)
NumericVector< Number > & solutionInternal() const override
Internal getter for solution owned by libMesh.
virtual void subdomainSetup() override
Shared storage and allocation logic for linear finite-volume cell gradients for variables in the syst...