110 boundaryFaceID(
const MOOSE_KOKKOS_INDEX_TYPE bc_face_index)
const;
126 template <
typename Derived>
129 ::Kokkos::abort(
"Default computeBoundaryValue() should never be called. Make sure you " 130 "properly redefined this method in your class without typos.");
139 template <
typename Derived>
142 ::Kokkos::abort(
"Default computeBoundaryNormalGradient() should never be called. Make sure " 143 "you properly redefined this method in your class without typos.");
151 template <
typename Derived>
155 return &LinearFVBoundaryCondition::computeBoundaryValue<Derived>;
158 template <
typename Derived>
161 return &LinearFVBoundaryCondition::computeBoundaryNormalGradient<Derived>;
170 template <
typename Derived>
171 KOKKOS_FUNCTION
void operator()(BoundaryValueLoop,
const ThreadID tid,
const Derived & bc)
const;
179 template <
typename Derived>
215 template <
typename Derived>
219 const Derived & bc)
const 223 const auto relation = bc.template computeBoundaryValue<Derived>(datum);
228 template <
typename Derived>
232 const Derived & bc)
const 236 const auto relation = bc.template computeBoundaryNormalGradient<Derived>(datum);
Affine boundary relation used by Kokkos linear FV kernels: boundary_quantity = coefficient * cell_unk...
Tag dispatch type for boundary normal gradient relation computation.
A class for requiring an object to be boundary restricted.
A class for creating restricted objects.
BoundaryRelationData value
Tag dispatch type for boundary value relation computation.
BoundaryRelationData normal_gradient
Variable variable() const
Get the Kokkos variable this boundary condition supplies data for.
Scalar< Real > _t
TODO: Move to TransientInterface.
const InputParameters & parameters() const
Get the parameters of the object.
KOKKOS_FUNCTION BoundaryRelation computeBoundaryValue(const FVDatum &) const
Default boundary value relation hook.
Base class for Kokkos linear finite volume boundary conditions.
static auto defaultBoundaryNormalGradient()
KOKKOS_FUNCTION BoundaryRelation computeBoundaryNormalGradient(const FVDatum &) const
Default boundary normal gradient relation hook.
Boundary relation data indexed by relation type and BC-local boundary face.
The Kokkos interface that holds the host reference of the Kokkos mesh and copies it to device during ...
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
MOOSE_KOKKOS_INDEX_TYPE numBoundaryFaces() const
Number of faces in this boundary condition's existing worklist.
void computeBoundaryNormalGradientData()
Dispatch boundary normal gradient relation computation.
Interface for objects that needs transient capabilities.
std::unique_ptr< DispatcherBase > _boundary_value_dispatcher
Dispatcher for boundary value computation.
MOOSE_KOKKOS_INDEX_TYPE ThreadID
Pair< ContiguousElementID, unsigned int > boundaryFaceID(const MOOSE_KOKKOS_INDEX_TYPE bc_face_index) const
Face at a BC-local worklist index.
static InputParameters validParams()
Interface for notifications that the mesh has changed.
Boundary relation coefficient/source arrays indexed by BC-local boundary face.
Scalar< Real > _dt_old
Previous time step size.
Every object that can be built by the factory should be derived from this class.
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job...
Scalar< Real > _dt
Current time step size.
LinearFVBoundaryCondition(const InputParameters ¶meters)
Interface for objects that need to use UserObjects.
Scalar< const Real > _t_old
Old (previous time step) time.
Variable _var
Kokkos variable.
Array< Real > coefficient
bool hasBoundaryNormalGradient() const
Whether this boundary condition overrides the boundary normal gradient relation hook.
KOKKOS_FUNCTION const Mesh & kokkosMesh() const
Get the const reference of the Kokkos mesh.
KOKKOS_FUNCTION auto kokkosBoundaryElementSideID(Moose::Kokkos::ThreadID tid) const
Get the contiguous element ID - side index pair this Kokkos thread is operating on.
void computeBoundaryValueData()
Dispatch boundary value relation computation.
Scalar< int > _t_step
Current time step number.
FEProblemBase & _fe_problem
Reference to the finite element problem.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
The Kokkos variable object that carries the coupled variable and tag information. ...
static auto defaultBoundaryValue()
Functions used to check whether derived boundary conditions override the boundary data hooks...
Device-side geometric context for finite volume kernels and boundary conditions.
KOKKOS_FUNCTION void operator()(BoundaryValueLoop, const ThreadID tid, const Derived &bc) const
Boundary value dispatch loop body; writes the per-face boundary value relation.
std::unique_ptr< DispatcherBase > _boundary_normal_gradient_dispatcher
Dispatcher for boundary normal gradient computation.
Interface for objects that need to use functions.
const BoundaryData & boundaryData() const
Get the boundary data relation arrays owned by this boundary condition.
Interface class for classes which interact with Postprocessors.
bool hasBoundaryValue() const
Whether this boundary condition overrides the boundary value relation hook.
BoundaryData _boundary_data
Boundary relation arrays owned by this boundary condition.