#include "common/DataTypes.hpp"
#include "common/TimingMacros.hpp"
#include "constitutive/ConstitutivePassThru.hpp"
#include "finiteElement/FiniteElementDispatch.hpp"
#include "mesh/ElementRegionManager.hpp"
#include "rajaInterface/GEOS_RAJA_Interface.hpp"
Go to the source code of this file.
|
template<class T , class Tuple > |
constexpr T | std::make_from_tuple (Tuple &&t) |
| Implementation of std::make_from_tuple() More...
|
|
template<typename POLICY , typename CONSTITUTIVE_BASE , typename REGION_TYPE , template< typename SUBREGION_TYPE, typename CONSTITUTIVE_TYPE, typename FE_TYPE > class KERNEL_TEMPLATE, typename ... KERNEL_CONSTRUCTOR_PARAMS> |
static real64 | geosx::finiteElement::regionBasedKernelApplication (MeshLevel &mesh, arrayView1d< string const > const &targetRegions, string const &finiteElementName, arrayView1d< string const > const &constitutiveNames, KERNEL_CONSTRUCTOR_PARAMS &&... kernelConstructorParams) |
| Performs a loop over specific regions (by type and name) and calls a kernel launch on the subregions with compile time knowledge of sub-loop bounds such as number of nodes and quadrature points per element. More...
|
|
◆ make_from_tuple()
template<class T , class Tuple >
constexpr T std::make_from_tuple |
( |
Tuple && |
t | ) |
|
◆ regionBasedKernelApplication()
template<typename POLICY , typename CONSTITUTIVE_BASE , typename REGION_TYPE , template< typename SUBREGION_TYPE, typename CONSTITUTIVE_TYPE, typename FE_TYPE > class KERNEL_TEMPLATE, typename ... KERNEL_CONSTRUCTOR_PARAMS>
static real64 geosx::finiteElement::regionBasedKernelApplication |
( |
MeshLevel & |
mesh, |
|
|
arrayView1d< string const > const & |
targetRegions, |
|
|
string const & |
finiteElementName, |
|
|
arrayView1d< string const > const & |
constitutiveNames, |
|
|
KERNEL_CONSTRUCTOR_PARAMS &&... |
kernelConstructorParams |
|
) |
| |
|
static |
Performs a loop over specific regions (by type and name) and calls a kernel launch on the subregions with compile time knowledge of sub-loop bounds such as number of nodes and quadrature points per element.
- Template Parameters
-
POLICY | The RAJA launch policy to pass to the kernel launch. |
CONSTITUTIVE_BASE | The common base class for constitutive pass-thru/dispatch which gives the kernel launch compile time knowledge of the constitutive model. This is achieved through a call to the ConstitutivePassThru function which should have a specialization for CONSTITUTIVE_BASE implemented in order to perform the compile time dispatch. |
REGION_TYPE | The type of region to loop over. TODO make this a parameter pack? |
KERNEL_TEMPLATE | The type of template for the physics kernel, which conforms to the interface specified by KernelBase. |
KERNEL_CONSTRUCTOR_PARAMS | The template parameter pack to hold the parameter pack (i.e. custom) parameters that are sent to the constructor for the KERNEL_TEMPLATE . |
- Parameters
-
mesh | The MeshLevel object. |
targetRegions | The names of the target regions(of type REGION_TYPE ) to apply the KERNEL_TEMPLATE . |
finiteElementName | The name of the finite element. |
constitutiveNames | The names of the constitutive models present in the Region. |
kernelConstructorParams | The parameter list for corresponding to the parameter KERNEL_CONSTRUCTOR_PARAMS that are passed to the KERNEL_TEMPLATE constructor. |
- Returns
- The maximum contribution to the residual, which may be used to scale the residual.
Loops over all regions Applies/Launches a kernel specified by the KERNEL_TEMPLATE
through #geosx::finiteElement::KernelBase::kernelLaunch().
Definition at line 368 of file KernelBase.hpp.