The Kokkos FE system class. More...
#include <KokkosFESystem.h>
Public Member Functions | |
| FESystem (SystemBase &system) | |
| Constructor for standalone use (pure FE simulations) | |
| FESystem (System &base, SystemBase &system) | |
| Constructor for mixed FE+FV simulations, sharing device memory with an existing System. | |
| void | reinit () |
| Allocate the quadrature point vectors for active variable and tags and cache quadrature point values. | |
| KOKKOS_FUNCTION const Array< unsigned int > & | getFieldCoupling (unsigned int var) const |
| Get the list of off-diagonal coupled field variable numbers of a variable. | |
| KOKKOS_FUNCTION const Array< unsigned int > & | getScalarCoupling (unsigned int var) const |
| Get the list of off-diagonal coupled scalar variable numbers of a variable. | |
| KOKKOS_FUNCTION bool | hasNodalBCMatrixTag (dof_id_type dof, TagID tag) const |
| Check whether a local DOF index is associated with a nodal BC for an extra matrix tag. | |
| KOKKOS_FUNCTION unsigned int | getFETypeID (unsigned int var) const |
| Get the FE type ID of a variable. | |
| KOKKOS_FUNCTION dof_id_type | getNodeLocalDofIndex (ContiguousNodeID node, unsigned int i, unsigned int var) const |
| Get the local DOF index of a variable for a node. | |
| KOKKOS_FUNCTION dof_id_type | getNodeGlobalDofIndex (ContiguousNodeID node, unsigned int i, unsigned int var) const |
| Get the global DOF index of a variable for a node. | |
| KOKKOS_FUNCTION bool | isNodalDefined (ContiguousNodeID node, unsigned int var) const |
| Get whether a variable is defined on a node. | |
| KOKKOS_FUNCTION ADReal | getVectorDofADValue (const dof_id_type dof, const TagID tag, const Real seed) const |
| Get the DOF value of a tagged vector for automatic differentiation (AD) | |
| KOKKOS_FUNCTION Real & | getVectorQpValue (const ElementInfo info, const dof_id_type qp, const unsigned int var, const TagID tag) const |
| Get the quadrature point value of a variable from a tagged vector. | |
| KOKKOS_FUNCTION ADReal | getVectorQpADValue (const ElementInfo info, const dof_id_type offset, const dof_id_type qp, const unsigned int var, const TagID tag, const Real seed) const |
| Get the quadrature point value of a variable from a tagged vector for automatic differentiation (AD) | |
| KOKKOS_FUNCTION Real3 & | getVectorQpGrad (const ElementInfo info, const dof_id_type qp, const unsigned int var, const TagID tag) const |
| Get the quadrature point gradient of a variable from a tagged vector. | |
| KOKKOS_FUNCTION Real3 & | getVectorQpVectorValue (const ElementInfo info, const dof_id_type qp, const unsigned int var, const TagID tag) const |
| Get the quadrature point value of a vector variable from a tagged vector. | |
| KOKKOS_FUNCTION Real33 & | getVectorQpVectorGrad (const ElementInfo info, const dof_id_type qp, const unsigned int var, const TagID tag) const |
| Get the quadrature point gradient of a vector variable from a tagged vector. | |
| KOKKOS_FUNCTION Real3 & | getVectorQpVectorCurl (const ElementInfo info, const dof_id_type qp, const unsigned int var, const TagID tag) const |
| Get the quadrature point curl of a vector variable from a tagged vector. | |
| KOKKOS_FUNCTION ADReal3 | getVectorQpADGrad (const ElementInfo info, const Real33 jacobian, const dof_id_type offset, const dof_id_type qp, const unsigned int var, const TagID tag, const Real seed) const |
| Get the quadrature point gradient of a variable from a tagged vector for automatic differentiation (AD) | |
| KOKKOS_FUNCTION Real | getVectorQpValueFace (const ElementInfo info, const unsigned int side, const unsigned int qp, const unsigned int var, const TagID tag) const |
| Get the face quadrature point value of a variable from a tagged vector. | |
| KOKKOS_FUNCTION Real3 | getVectorQpVectorValueFace (const ElementInfo info, const unsigned int side, const unsigned int qp, const unsigned int var, const TagID tag) const |
| Get the face quadrature point value of a vector variable from a tagged vector. | |
| KOKKOS_FUNCTION ADReal | getVectorQpADValueFace (const ElementInfo info, const unsigned int side, const unsigned int qp, const unsigned int var, const TagID tag, const Real seed) const |
| Get the face quadrature point value of a variable from a tagged vector for automatic differentiation (AD) | |
| KOKKOS_FUNCTION Real3 | getVectorQpGradFace (const ElementInfo info, const unsigned int side, const Real33 jacobian, const unsigned int qp, const unsigned int var, const TagID tag) const |
| Get the face quadrature point gradient of a variable from a tagged vector. | |
| KOKKOS_FUNCTION Real33 | getVectorQpVectorGradFace (const ElementInfo info, const unsigned int side, const Real33 jacobian, const unsigned int qp, const unsigned int var, const TagID tag) const |
| Get the face quadrature point gradient of a vector variable from a tagged vector. | |
| KOKKOS_FUNCTION ADReal3 | getVectorQpADGradFace (const ElementInfo info, const unsigned int side, const Real33 jacobian, const unsigned int qp, const unsigned int var, const TagID tag, const Real seed) const |
| Get the face quadrature point gradient of a variable from a tagged vector for automatic differentiation (AD) | |
| KOKKOS_FUNCTION void | operator() (const ThreadID tid) const |
| Kokkos function for caching variable values on element quadrature points. | |
| void | sync (const MemcpyType dir) |
| Synchronize the active tagged vectors and matrices between host and device. | |
| void | setActiveVariables (const std::set< MooseVariableFieldBase * > &vars) |
| Set the active variables. | |
| void | setActiveSolutionTags (const std::set< TagID > &tags) |
| Set the active solution tags. | |
| void | setActiveResidualTags (const std::set< TagID > &tags) |
| Set the active residual tags. | |
| void | setActiveMatrixTags (const std::set< TagID > &tags) |
| Set the active matrix tags. | |
| void | clearActiveVariables () |
| Clear the cached active variables. | |
| void | clearActiveSolutionTags () |
| Clear the cached active solution tags. | |
| void | clearActiveResidualTags () |
| Clear the cached active residual tags. | |
| void | clearActiveMatrixTags () |
| Clear the cached active matrix tags. | |
| const libMesh::DofMap & | getDofMap () const |
| Get the libMesh DOF map. | |
| const Parallel::Communicator & | getComm () const |
| Get the libMesh communicator. | |
| const Array< Array< dof_id_type > > & | getLocalCommList () const |
| Get the list of local DOF indices to communicate. | |
| const Array< Array< dof_id_type > > & | getGhostCommList () const |
| Get the list of ghost DOF indices to communicate. | |
| const Sparsity & | getSparsity () const |
| Get the sparisty pattern data. | |
| void | buildCooIndices (std::vector< PetscInt > &coo_i, std::vector< PetscInt > &coo_j) const |
| Build the COO index arrays describing the sparsity pattern. | |
| KOKKOS_FUNCTION bool | isScalarVariable (unsigned int var) const |
| Check whether a variable is scalar. | |
| KOKKOS_FUNCTION bool | isVariableActive (unsigned int var, ContiguousSubdomainID subdomain) const |
| Check whether a variable is active on a subdomain. | |
| KOKKOS_FUNCTION bool | isResidualTagActive (TagID tag) const |
| Check whether a residual tag is active. | |
| KOKKOS_FUNCTION bool | isMatrixTagActive (TagID tag) const |
| Check whether a matrix tag is active. | |
| KOKKOS_FUNCTION dof_id_type | getNumLocalDofs () const |
| Get the number of local DOFs. | |
| KOKKOS_FUNCTION dof_id_type | getNumGhostDofs () const |
| Get the number of ghost DOFs. | |
| KOKKOS_FUNCTION unsigned int | getNumScalarDofs (unsigned int var) const |
| Get the number of DOFs of a scalar variable. | |
| KOKKOS_FUNCTION dof_id_type | getElemLocalDofIndex (ContiguousElementID elem, unsigned int i, unsigned int var) const |
| Get the local DOF index of a variable for an element. | |
| KOKKOS_FUNCTION dof_id_type | getScalarLocalDofIndex (unsigned int i, unsigned int var) const |
| Get the local DOF index of a scalar variable. | |
| KOKKOS_FUNCTION dof_id_type | getElemGlobalDofIndex (ContiguousElementID elem, unsigned int i, unsigned int var) const |
| Get the global DOF index of a variable for an element. | |
| KOKKOS_FUNCTION dof_id_type | getScalarGlobalDofIndex (unsigned int i, unsigned int var) const |
| Get the global DOF index of a scalar variable. | |
| KOKKOS_FUNCTION dof_id_type | localToGlobalDofIndex (dof_id_type dof) const |
| Get the global DOF index of a local DOF index. | |
| KOKKOS_FUNCTION Vector & | getVector (TagID tag) const |
| Get a tagged Kokkos vector. | |
| KOKKOS_FUNCTION Matrix & | getMatrix (TagID tag) const |
| Get a tagged Kokkos matrix. | |
| KOKKOS_FUNCTION Real & | getVectorDofValue (const dof_id_type dof, const TagID tag) const |
| Get the DOF value of a tagged vector. | |
| KOKKOS_FUNCTION Real & | getMatrixValue (dof_id_type row, dof_id_type col, TagID tag) const |
| Get an entry from a tagged matrix. | |
| PerfGraph & | perfGraph () |
| Get the PerfGraph. | |
| KOKKOS_FUNCTION const Mesh & | kokkosMesh () const |
| Get the const reference of the Kokkos mesh. | |
| KOKKOS_FUNCTION const Assembly & | kokkosAssembly () const |
| Get the const reference of the Kokkos assembly. | |
| void | sync (const std::set< TagID > &tags, const MemcpyType dir) |
| Synchronize the specified tagged vectors between host and device. | |
| void | sync (const std::vector< TagID > &tags, const MemcpyType dir) |
| void | sync (const TagID tag, const MemcpyType dir) |
| SystemBase & | getSystem () |
| Get the MOOSE system. | |
| const SystemBase & | getSystem () const |
Static Public Member Functions | |
| static InputParameters | validParams () |
Protected Member Functions | |
| PerfID | registerTimedSection (const std::string §ion_name, const unsigned int level) const |
| Call to register a named section for timing. | |
| PerfID | registerTimedSection (const std::string §ion_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const |
| Call to register a named section for timing. | |
| std::string | timedSectionName (const std::string §ion_name) const |
Protected Attributes | |
| SystemBase & | _system |
| Reference of the MOOSE system. | |
| const MooseMesh & | _mesh |
| Reference of the MOOSE mesh. | |
| const libMesh::DofMap & | _dof_map |
| Reference of the libMesh DOF map. | |
| const Parallel::Communicator & | _comm |
| Reference of the libMesh communicator. | |
| const unsigned int | _num_vars |
| Number of variables. | |
| const dof_id_type | _num_local_dofs |
| Number of local DOFs. | |
| const dof_id_type | _num_ghost_dofs |
| Number of ghost DOFs. | |
| Array< Array2D< dof_id_type > > | _local_elem_dof_index |
| Local element DOF indices of each variable. | |
| Array< Array< dof_id_type > > | _scalar_dof_index |
| DOF indices of each scalar variable. | |
| Array< dof_id_type > | _local_to_global_dof_index |
| Map from local DOF index to global DOF index. | |
| Array< unsigned int > | _max_dofs_per_elem |
| Maximum number of DOFs per element for each variable. | |
| Array< bool > | _var_is_scalar |
| Whether each variable is scalar. | |
| Array2D< bool > | _var_subdomain_active |
| Whether each variable is active on subdomains. | |
| Array< unsigned int > | _active_variables |
| List of active variable numbers. | |
| MooseApp & | _pg_moose_app |
| The MooseApp that owns the PerfGraph. | |
| const std::string | _prefix |
| A prefix to use for all sections. | |
| Array< Vector > | _vectors |
| Kokkos vectors and matrices on device. | |
| Array< Matrix > | _matrices |
| Array< TagID > | _active_solution_tags |
| List of active tags. | |
| Array< TagID > | _active_residual_tags |
| Array< TagID > | _active_matrix_tags |
| Array< bool > | _residual_tag_active |
| Flag whether each tag is active. | |
| Array< bool > | _matrix_tag_active |
| Array< Array< dof_id_type > > | _local_comm_list |
| List of DOFs to send and receive. | |
| Array< Array< dof_id_type > > | _ghost_comm_list |
Private Member Functions | |
| void | setupVariables () |
| Setup variable data. | |
| void | setupDofs () |
| Setup DOF data. | |
| void | setupCoupling () |
| Setup coupling data between variables. | |
| void | setupNodalBCDofs () |
| Mark the DOFs covered by nodal BCs. | |
| void | getNodalBCDofs (const NodalBCBase *nbc, Array< bool > &dofs) |
| Get the list of DOFs covered by a nodal BC. | |
| void | setupSparsity () |
| Setup sparsity data. | |
Private Attributes | |
| Thread | _thread |
| Kokkos thread object. | |
| Array< Array< dof_id_type > > | _local_node_dof_index |
| Local nodal DOF indices of each variable. | |
| Array< unsigned int > | _var_fe_types |
| FE type ID of each variable. | |
| Array< bool > | _var_is_vector |
| Whether each variable is vector-valued. | |
| Array< Array< bool > > | _nbc_matrix_tag_dof |
| Per-matrix-tag local-plus-ghost DOF masks for nodal BC coverage. | |
| Sparsity | _sparsity |
| Matrix sparsity pattern data. | |
| const Mesh & | _mesh_host |
| Host reference of the Kokkos mesh. | |
| const Mesh | _mesh_device |
| Device copy of the Kokkos mesh. | |
| const Assembly & | _assembly_host |
| Host reference of the Kokkos assembly. | |
| const Assembly | _assembly_device |
| Device copy of the Kokkos assembly. | |
| Array< Array2D< Array< Real > > > | _qp_solutions |
| Cached elemental quadrature values and gradients. | |
| Array< Array2D< Array< Real3 > > > | _qp_solutions_grad |
| Array< Array2D< Array< Real3 > > > | _qp_vector_solutions |
| Array< Array2D< Array< Real33 > > > | _qp_vector_solutions_grad |
| Array< Array2D< Array< Real3 > > > | _qp_vector_solutions_curl |
| Array< Array< unsigned int > > | _field_coupling |
| Off-diagonal coupled field and scalar variable numbers of each variable. | |
| Array< Array< unsigned int > > | _scalar_coupling |
The Kokkos FE system class.
Each system in MOOSE with FE variables has a corresponding Kokkos FE system.
Definition at line 27 of file KokkosFESystem.h.
| Moose::Kokkos::FESystem::FESystem | ( | SystemBase & | system | ) |
Constructor for standalone use (pure FE simulations)
| system | The associated MOOSE system |
| Moose::Kokkos::FESystem::FESystem | ( | System & | base, |
| SystemBase & | system | ||
| ) |
|
inherited |
Build the COO index arrays describing the sparsity pattern.
PETSc consumes these arrays destructively, so a fresh pair is needed for each matrix preallocated from this system. The arrays are resized to the number of nonzeros and fully overwritten, which lets one allocation be reused across the matrices.
| coo_i | The row index of each nonzero |
| coo_j | The column index of each nonzero |
|
inlineinherited |
Clear the cached active matrix tags.
Definition at line 117 of file KokkosSystem.h.
|
inlineinherited |
Clear the cached active residual tags.
Definition at line 108 of file KokkosSystem.h.
|
inlineinherited |
Clear the cached active solution tags.
Definition at line 103 of file KokkosSystem.h.
|
inlineinherited |
Clear the cached active variables.
Definition at line 98 of file KokkosSystem.h.
|
inlineinherited |
Get the libMesh communicator.
Definition at line 142 of file KokkosSystem.h.
|
inlineinherited |
Get the libMesh DOF map.
Definition at line 136 of file KokkosSystem.h.
|
inlineinherited |
Get the global DOF index of a variable for an element.
| elem | The contiguous element ID |
| i | The element-local DOF index |
| var | The variable number |
Definition at line 260 of file KokkosSystem.h.
|
inlineinherited |
Get the local DOF index of a variable for an element.
| elem | The contiguous element ID |
| i | The element-local DOF index |
| var | The variable number |
Definition at line 235 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getElemGlobalDofIndex(), getVectorQpADGrad(), getVectorQpADGradFace(), getVectorQpADValue(), getVectorQpADValueFace(), getVectorQpGradFace(), getVectorQpValueFace(), getVectorQpVectorGradFace(), and getVectorQpVectorValueFace().
Get the FE type ID of a variable.
| var | The variable number |
Definition at line 87 of file KokkosFESystem.h.
|
inline |
Get the list of off-diagonal coupled field variable numbers of a variable.
| var | The variable number |
Definition at line 56 of file KokkosFESystem.h.
|
inlineinherited |
Get the list of ghost DOF indices to communicate.
Definition at line 154 of file KokkosSystem.h.
|
inlineinherited |
Get the list of local DOF indices to communicate.
Definition at line 148 of file KokkosSystem.h.
Get a tagged Kokkos matrix.
| tag | The matrix tag |
Definition at line 300 of file KokkosSystem.h.
|
inlineinherited |
Get an entry from a tagged matrix.
| row | The local row index |
| col | The global column index |
| tag | The matrix tag |
Definition at line 320 of file KokkosSystem.h.
|
private |
Get the list of DOFs covered by a nodal BC.
| nbc | The Kokkos nodal BC object |
| dofs | Local-plus-ghost DOF mask; entries are set true for DOFs covered by the nodal BC |
|
inline |
Get the global DOF index of a variable for a node.
| node | The contiguous node ID |
| i | The node-local DOF index |
| var | The variable number |
Definition at line 110 of file KokkosFESystem.h.
|
inline |
Get the local DOF index of a variable for a node.
| node | The contiguous node ID |
| i | The node-local DOF index |
| var | The variable number |
Definition at line 96 of file KokkosFESystem.h.
Referenced by getNodeGlobalDofIndex().
|
inlineinherited |
Get the number of ghost DOFs.
Definition at line 216 of file KokkosSystem.h.
|
inlineinherited |
Get the number of local DOFs.
Definition at line 210 of file KokkosSystem.h.
|
inlineinherited |
Get the number of DOFs of a scalar variable.
| var | The variable number |
Definition at line 223 of file KokkosSystem.h.
|
inline |
Get the list of off-diagonal coupled scalar variable numbers of a variable.
| var | The variable number |
Definition at line 66 of file KokkosFESystem.h.
|
inlineinherited |
Get the global DOF index of a scalar variable.
| i | The scalar DOF index |
| var | The variable number |
Definition at line 273 of file KokkosSystem.h.
|
inlineinherited |
Get the local DOF index of a scalar variable.
| i | The scalar DOF index |
| var | The variable number |
Definition at line 248 of file KokkosSystem.h.
Referenced by Moose::Kokkos::VariableValueTempl< is_ad >::get(), and Moose::Kokkos::System::getScalarGlobalDofIndex().
|
inlineinherited |
Get the sparisty pattern data.
Definition at line 160 of file KokkosSystem.h.
|
inlineinherited |
Get the MOOSE system.
Definition at line 128 of file KokkosSystem.h.
|
inlineinherited |
Definition at line 129 of file KokkosSystem.h.
Get a tagged Kokkos vector.
| tag | The vector tag |
Definition at line 293 of file KokkosSystem.h.
|
inline |
Get the DOF value of a tagged vector for automatic differentiation (AD)
| dof | The local DOF index |
| tag | The vector tag |
| seed | The derivative seed |
Definition at line 429 of file KokkosFESystem.h.
Referenced by getVectorQpADGrad(), getVectorQpADGradFace(), getVectorQpADValue(), and getVectorQpADValueFace().
|
inlineinherited |
Get the DOF value of a tagged vector.
| dof | The local DOF index |
| tag | The vector tag |
Definition at line 308 of file KokkosSystem.h.
Referenced by getVectorQpGradFace(), getVectorQpValueFace(), getVectorQpVectorGradFace(), and getVectorQpVectorValueFace().
|
inline |
Get the quadrature point gradient of a variable from a tagged vector for automatic differentiation (AD)
| info | The element information object |
| jacobian | The inverse Jacobian matrix |
| offset | The element's offset into the subdomain-local flattened quadrature point index |
| qp | The local quadrature point index |
| var | The variable number |
| tag | The vector tag |
| seed | The derivative seed |
Definition at line 465 of file KokkosFESystem.h.
|
inline |
Get the face quadrature point gradient of a variable from a tagged vector for automatic differentiation (AD)
| info | The element information object |
| side | The side index |
| jacobian | The inverse Jacobian matrix |
| qp | The local quadrature point index |
| var | The variable number |
| tag | The vector tag |
| seed | The derivative seed |
Definition at line 596 of file KokkosFESystem.h.
Referenced by Moose::Kokkos::VariableGradientTempl< is_ad >::get().
|
inline |
Get the quadrature point value of a variable from a tagged vector for automatic differentiation (AD)
| info | The element information object |
| offset | The element's offset into the subdomain-local flattened quadrature point index |
| qp | The local quadrature point index |
| var | The variable number |
| tag | The vector tag |
| seed | The derivative seed |
Definition at line 440 of file KokkosFESystem.h.
|
inline |
Get the face quadrature point value of a variable from a tagged vector for automatic differentiation (AD)
| info | The element information object |
| side | The side index |
| qp | The local quadrature point index |
| var | The variable number |
| tag | The vector tag |
| seed | The derivative seed |
Definition at line 532 of file KokkosFESystem.h.
|
inline |
Get the quadrature point gradient of a variable from a tagged vector.
| info | The element information object |
| qp | The subdomain-local flattened quadrature point index |
| var | The variable number |
| tag | The vector tag |
Definition at line 178 of file KokkosFESystem.h.
Referenced by Moose::Kokkos::VariableGradientTempl< is_ad >::get(), and getVectorQpADGrad().
|
inline |
Get the face quadrature point gradient of a variable from a tagged vector.
| info | The element information object |
| side | The side index |
| jacobian | The inverse Jacobian matrix |
| qp | The local quadrature point index |
| var | The variable number |
| tag | The vector tag |
Definition at line 552 of file KokkosFESystem.h.
Referenced by Moose::Kokkos::VariableGradientTempl< is_ad >::get().
|
inline |
Get the quadrature point value of a variable from a tagged vector.
| info | The element information object |
| qp | The subdomain-local flattened quadrature point index |
| var | The variable number |
| tag | The vector tag |
Definition at line 146 of file KokkosFESystem.h.
Referenced by getVectorQpADValue().
|
inline |
Get the face quadrature point value of a variable from a tagged vector.
| info | The element information object |
| side | The side index |
| qp | The local quadrature point index |
| var | The variable number |
| tag | The vector tag |
Definition at line 494 of file KokkosFESystem.h.
|
inline |
Get the quadrature point curl of a vector variable from a tagged vector.
| info | The element information object |
| qp | The subdomain-local flattened quadrature point index |
| var | The variable number |
| tag | The vector tag |
Definition at line 223 of file KokkosFESystem.h.
|
inline |
Get the quadrature point gradient of a vector variable from a tagged vector.
| info | The element information object |
| qp | The subdomain-local flattened quadrature point index |
| var | The variable number |
| tag | The vector tag |
Definition at line 208 of file KokkosFESystem.h.
|
inline |
Get the face quadrature point gradient of a vector variable from a tagged vector.
| info | The element information object |
| side | The side index |
| jacobian | The inverse Jacobian matrix |
| qp | The local quadrature point index |
| var | The variable number |
| tag | The vector tag |
Definition at line 574 of file KokkosFESystem.h.
|
inline |
Get the quadrature point value of a vector variable from a tagged vector.
| info | The element information object |
| qp | The subdomain-local flattened quadrature point index |
| var | The variable number |
| tag | The vector tag |
Definition at line 193 of file KokkosFESystem.h.
|
inline |
Get the face quadrature point value of a vector variable from a tagged vector.
| info | The element information object |
| side | The side index |
| qp | The local quadrature point index |
| var | The variable number |
| tag | The vector tag |
Definition at line 513 of file KokkosFESystem.h.
|
inline |
Check whether a local DOF index is associated with a nodal BC for an extra matrix tag.
| dof | The local DOF index |
| tag | The extra matrix tag |
Definition at line 77 of file KokkosFESystem.h.
|
inlineinherited |
Check whether a matrix tag is active.
| tag | The matrix tag |
Definition at line 204 of file KokkosSystem.h.
|
inline |
Get whether a variable is defined on a node.
| node | The contiguous node ID |
| var | The variable number |
Definition at line 123 of file KokkosFESystem.h.
|
inlineinherited |
Check whether a residual tag is active.
| tag | The residual tag |
Definition at line 197 of file KokkosSystem.h.
|
inlineinherited |
Check whether a variable is scalar.
| var | The variable number |
Definition at line 179 of file KokkosSystem.h.
|
inlineinherited |
Check whether a variable is active on a subdomain.
| var | The variable number |
| subdomain | The contiguous subdomain ID |
Definition at line 187 of file KokkosSystem.h.
|
inlineinherited |
Get the const reference of the Kokkos assembly.
Definition at line 634 of file KokkosAssembly.h.
Referenced by getVectorQpADGrad(), getVectorQpADGradFace(), getVectorQpADValue(), getVectorQpADValueFace(), getVectorQpGradFace(), getVectorQpValueFace(), getVectorQpVectorGradFace(), getVectorQpVectorValueFace(), Moose::Kokkos::ElementUserObject::operator()(), Moose::Kokkos::NodalUserObject::operator()(), Moose::Kokkos::SideUserObject::operator()(), Moose::Kokkos::Material::operator()(), Moose::Kokkos::Material::operator()(), Moose::Kokkos::AuxKernel::operator()(), Moose::Kokkos::IntegratedBC::operator()(), Moose::Kokkos::NodalBC::operator()(), Moose::Kokkos::VectorIntegratedBC::operator()(), Moose::Kokkos::VectorNodalBC::operator()(), Moose::Kokkos::Kernel::operator()(), Moose::Kokkos::VectorKernel::operator()(), Moose::Kokkos::NodalKernel::operator()(), Moose::Kokkos::Material::operator()(), Moose::Kokkos::Material::operator()(), Moose::Kokkos::AuxKernel::operator()(), Moose::Kokkos::IntegratedBC::operator()(), Moose::Kokkos::NodalBC::operator()(), Moose::Kokkos::VectorIntegratedBC::operator()(), Moose::Kokkos::VectorNodalBC::operator()(), Moose::Kokkos::Kernel::operator()(), Moose::Kokkos::VectorKernel::operator()(), Moose::Kokkos::NodalKernel::operator()(), Moose::Kokkos::IntegratedBC::operator()(), Moose::Kokkos::Kernel::operator()(), Moose::Kokkos::ElementReducer::operator()(), Moose::Kokkos::NodalReducer::operator()(), Moose::Kokkos::SideReducer::operator()(), Moose::Kokkos::ADIntegratedBC::operator()(), Moose::Kokkos::ADNodalBC::operator()(), Moose::Kokkos::IntegratedBC::operator()(), Moose::Kokkos::NodalBC::operator()(), Moose::Kokkos::VectorIntegratedBC::operator()(), Moose::Kokkos::VectorNodalBC::operator()(), Moose::Kokkos::ADKernel::operator()(), Moose::Kokkos::Kernel::operator()(), Moose::Kokkos::VectorKernel::operator()(), Moose::Kokkos::NodalKernel::operator()(), Moose::Kokkos::Material::operator()(), and Moose::Kokkos::Material::operator()().
|
inlineinherited |
Get the const reference of the Kokkos mesh.
Definition at line 651 of file KokkosMesh.h.
Referenced by Moose::Kokkos::Assembly::computePhysicalMap(), Moose::Kokkos::Assembly::computePhysicalMap(), Moose::Kokkos::LinearFVFluxKernel::operator()(), Moose::Kokkos::LinearFVBoundaryCondition::operator()(), Moose::Kokkos::LinearFVFluxKernel::operator()(), Moose::Kokkos::LinearFVBoundaryCondition::operator()(), Moose::Kokkos::LinearFVFluxKernel::operator()(), Moose::Kokkos::LinearFVFluxKernel::operator()(), Moose::Kokkos::LinearFVElementalKernel::operator()(), Moose::Kokkos::IntegratedBC::operator()(), Moose::Kokkos::VectorIntegratedBC::operator()(), Moose::Kokkos::Kernel::operator()(), Moose::Kokkos::VectorKernel::operator()(), Moose::Kokkos::IntegratedBC::operator()(), Moose::Kokkos::Kernel::operator()(), Moose::Kokkos::LinearFVElementalKernel::operator()(), Moose::Kokkos::Datum::q_point(), and KokkosBoundNodalKernel::skipOnBoundary().
|
inlineinherited |
Get the global DOF index of a local DOF index.
| dof | The local DOF index |
Definition at line 283 of file KokkosSystem.h.
| KOKKOS_FUNCTION void Moose::Kokkos::FESystem::operator() | ( | const ThreadID | tid | ) | const |
Kokkos function for caching variable values on element quadrature points.
|
inherited |
Get the PerfGraph.
Definition at line 86 of file PerfGraphInterface.C.
Referenced by CommonOutputAction::act(), PerfGraphData::finalize(), PerfGraphReporter::finalize(), and PerfGraphOutput::output().
|
protectedinherited |
Call to register a named section for timing.
| section_name | The name of the code section to be timed |
| level | The importance of the timer - lower is more important (0 will always come out) |
Definition at line 61 of file PerfGraphInterface.C.
|
protectedinherited |
Call to register a named section for timing.
| section_name | The name of the code section to be timed |
| level | The importance of the timer - lower is more important (0 will always come out) |
| live_message | The message to be printed to the screen during execution |
| print_dots | Whether or not progress dots should be printed for this section |
Definition at line 72 of file PerfGraphInterface.C.
| void Moose::Kokkos::FESystem::reinit | ( | ) |
Allocate the quadrature point vectors for active variable and tags and cache quadrature point values.
|
inherited |
Set the active matrix tags.
| vars | The active matrix tags |
|
inherited |
Set the active residual tags.
| tags | The active residual tags |
|
inherited |
Set the active solution tags.
| tags | The active solution tags |
|
inherited |
Set the active variables.
| vars | The active MOOSE variables |
|
private |
Setup coupling data between variables.
|
private |
Setup DOF data.
|
private |
Mark the DOFs covered by nodal BCs.
|
privateinherited |
Setup sparsity data.
|
private |
Setup variable data.
|
inherited |
Synchronize the active tagged vectors and matrices between host and device.
| dir | Copy direction |
|
inherited |
Synchronize the specified tagged vectors between host and device.
| tags | The vector tags |
| dir | Copy direction |
|
inherited |
|
inherited |
|
protectedinherited |
section_name.Optionally adds a prefix if one is defined.
Definition at line 55 of file PerfGraphInterface.C.
Referenced by PerfGraphInterface::registerTimedSection(), and PerfGraphInterface::registerTimedSection().
|
staticinherited |
Definition at line 16 of file PerfGraphInterface.C.
Referenced by Convergence::validParams().
Definition at line 412 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::clearActiveMatrixTags().
Definition at line 411 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::clearActiveResidualTags().
List of active tags.
Definition at line 410 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::clearActiveSolutionTags().
List of active variable numbers.
Definition at line 404 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::clearActiveVariables().
|
privateinherited |
Device copy of the Kokkos assembly.
Definition at line 650 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::AssemblyHolder::kokkosAssembly().
|
privateinherited |
Host reference of the Kokkos assembly.
Definition at line 646 of file KokkosAssembly.h.
Referenced by Moose::Kokkos::AssemblyHolder::kokkosAssembly().
|
protectedinherited |
Reference of the libMesh communicator.
Definition at line 346 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getComm().
|
protectedinherited |
Reference of the libMesh DOF map.
Definition at line 341 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getDofMap().
Off-diagonal coupled field and scalar variable numbers of each variable.
Definition at line 416 of file KokkosFESystem.h.
Referenced by getFieldCoupling().
Definition at line 428 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getGhostCommList().
List of DOFs to send and receive.
Definition at line 427 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getLocalCommList().
Local element DOF indices of each variable.
Definition at line 374 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getElemLocalDofIndex().
Local nodal DOF indices of each variable.
Definition at line 400 of file KokkosFESystem.h.
Referenced by getNodeLocalDofIndex(), and isNodalDefined().
|
protectedinherited |
Map from local DOF index to global DOF index.
Definition at line 384 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getElemGlobalDofIndex(), getNodeGlobalDofIndex(), Moose::Kokkos::System::getScalarGlobalDofIndex(), getVectorDofADValue(), and Moose::Kokkos::System::localToGlobalDofIndex().
Definition at line 368 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getMatrix(), and Moose::Kokkos::System::getMatrixValue().
|
protectedinherited |
Definition at line 420 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::clearActiveMatrixTags(), and Moose::Kokkos::System::isMatrixTagActive().
Maximum number of DOFs per element for each variable.
Definition at line 389 of file KokkosSystem.h.
|
protectedinherited |
Reference of the MOOSE mesh.
Definition at line 336 of file KokkosSystem.h.
|
privateinherited |
Device copy of the Kokkos mesh.
Definition at line 673 of file KokkosMesh.h.
Referenced by Moose::Kokkos::MeshHolder::kokkosMesh().
|
privateinherited |
Host reference of the Kokkos mesh.
Definition at line 669 of file KokkosMesh.h.
Referenced by Moose::Kokkos::MeshHolder::kokkosMesh().
Per-matrix-tag local-plus-ghost DOF masks for nodal BC coverage.
Definition at line 423 of file KokkosFESystem.h.
Referenced by hasNodalBCMatrixTag().
|
protectedinherited |
Number of ghost DOFs.
Definition at line 361 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getNumGhostDofs().
|
protectedinherited |
Number of local DOFs.
Definition at line 356 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getNumLocalDofs().
|
protectedinherited |
Number of variables.
Definition at line 351 of file KokkosSystem.h.
|
protectedinherited |
The MooseApp that owns the PerfGraph.
Definition at line 135 of file PerfGraphInterface.h.
Referenced by PerfGraphInterface::perfGraph().
|
protectedinherited |
A prefix to use for all sections.
Definition at line 138 of file PerfGraphInterface.h.
Referenced by PerfGraphInterface::timedSectionName().
Cached elemental quadrature values and gradients.
Definition at line 390 of file KokkosFESystem.h.
Referenced by getVectorQpValue().
Definition at line 391 of file KokkosFESystem.h.
Referenced by getVectorQpGrad().
Definition at line 392 of file KokkosFESystem.h.
Referenced by getVectorQpVectorValue().
Definition at line 394 of file KokkosFESystem.h.
Referenced by getVectorQpVectorCurl().
Definition at line 393 of file KokkosFESystem.h.
Referenced by getVectorQpVectorGrad().
|
protectedinherited |
Flag whether each tag is active.
Definition at line 419 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::clearActiveResidualTags(), and Moose::Kokkos::System::isResidualTagActive().
Definition at line 417 of file KokkosFESystem.h.
Referenced by getScalarCoupling().
DOF indices of each scalar variable.
Definition at line 379 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getNumScalarDofs(), and Moose::Kokkos::System::getScalarLocalDofIndex().
|
privateinherited |
Matrix sparsity pattern data.
Definition at line 450 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getSparsity().
|
protectedinherited |
Reference of the MOOSE system.
Definition at line 331 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getSystem(), and Moose::Kokkos::System::getSystem().
|
private |
Kokkos thread object.
Definition at line 384 of file KokkosFESystem.h.
FE type ID of each variable.
Definition at line 405 of file KokkosFESystem.h.
Referenced by getFETypeID(), getVectorQpADGrad(), getVectorQpADGradFace(), getVectorQpADValue(), getVectorQpADValueFace(), getVectorQpGradFace(), getVectorQpValueFace(), getVectorQpVectorGradFace(), and getVectorQpVectorValueFace().
|
protectedinherited |
Whether each variable is scalar.
Definition at line 394 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::isScalarVariable().
|
private |
Whether each variable is vector-valued.
Definition at line 410 of file KokkosFESystem.h.
|
protectedinherited |
Whether each variable is active on subdomains.
Definition at line 399 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::isVariableActive().
Kokkos vectors and matrices on device.
Definition at line 367 of file KokkosSystem.h.
Referenced by Moose::Kokkos::System::getVector(), getVectorDofADValue(), and Moose::Kokkos::System::getVectorDofValue().