Loading...
Searching...
No Matches
terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim > Class Template Reference

#include <unsteady_advection_diffusion_supg_kerngen.hpp>

Public Types

enum class  KernelPath { Slow , Fast }
 
using SrcVectorType = linalg::VectorQ1Scalar< ScalarT >
 
using DstVectorType = linalg::VectorQ1Scalar< ScalarT >
 
using ScalarType = ScalarT
 
using Team = Kokkos::TeamPolicy<>::member_type
 

Public Member Functions

 UnsteadyAdvectionDiffusionSUPGKerngen (const grid::shell::DistributedDomain &domain, const grid::Grid3DDataVec< ScalarT, 3 > &grid, const grid::Grid2DDataScalar< ScalarT > &radii, const grid::Grid4DDataScalar< grid::shell::ShellBoundaryFlag > &boundary_mask, const linalg::VectorQ1Vec< ScalarT, VelocityVecDim > &velocity, const ScalarT diffusivity, const ScalarT dt, bool treat_boundary, bool diagonal=false, ScalarT mass_scaling=1.0, bool lumped_mass=false, linalg::OperatorApplyMode operator_apply_mode=linalg::OperatorApplyMode::Replace, linalg::OperatorCommunicationMode operator_communication_mode=linalg::OperatorCommunicationMode::CommunicateAdditively)
 
ScalarT & dt ()
 
const ScalarT & dt () const
 
const char * path_name () const
 
KernelPath kernel_path () const
 
void force_slow_path ()
 
void apply_impl (const SrcVectorType &src, DstVectorType &dst)
 
size_t team_shmem_size (const int) const
 

Member Typedef Documentation

◆ DstVectorType

template<typename ScalarT , int VelocityVecDim = 3>
using terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::DstVectorType = linalg::VectorQ1Scalar< ScalarT >

◆ ScalarType

template<typename ScalarT , int VelocityVecDim = 3>
using terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::ScalarType = ScalarT

◆ SrcVectorType

template<typename ScalarT , int VelocityVecDim = 3>
using terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::SrcVectorType = linalg::VectorQ1Scalar< ScalarT >

◆ Team

template<typename ScalarT , int VelocityVecDim = 3>
using terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::Team = Kokkos::TeamPolicy<>::member_type

Member Enumeration Documentation

◆ KernelPath

template<typename ScalarT , int VelocityVecDim = 3>
enum class terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen::KernelPath
strong
Enumerator
Slow 
Fast 

Constructor & Destructor Documentation

◆ UnsteadyAdvectionDiffusionSUPGKerngen()

template<typename ScalarT , int VelocityVecDim = 3>
terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::UnsteadyAdvectionDiffusionSUPGKerngen ( const grid::shell::DistributedDomain domain,
const grid::Grid3DDataVec< ScalarT, 3 > &  grid,
const grid::Grid2DDataScalar< ScalarT > &  radii,
const grid::Grid4DDataScalar< grid::shell::ShellBoundaryFlag > &  boundary_mask,
const linalg::VectorQ1Vec< ScalarT, VelocityVecDim > &  velocity,
const ScalarT  diffusivity,
const ScalarT  dt,
bool  treat_boundary,
bool  diagonal = false,
ScalarT  mass_scaling = 1.0,
bool  lumped_mass = false,
linalg::OperatorApplyMode  operator_apply_mode = linalg::OperatorApplyMode::Replace,
linalg::OperatorCommunicationMode  operator_communication_mode = linalg::OperatorCommunicationMode::CommunicateAdditively 
)
inline

Member Function Documentation

◆ apply_impl()

template<typename ScalarT , int VelocityVecDim = 3>
void terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::apply_impl ( const SrcVectorType src,
DstVectorType dst 
)
inline

◆ dt() [1/2]

template<typename ScalarT , int VelocityVecDim = 3>
ScalarT & terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::dt ( )
inline

◆ dt() [2/2]

template<typename ScalarT , int VelocityVecDim = 3>
const ScalarT & terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::dt ( ) const
inline

◆ force_slow_path()

template<typename ScalarT , int VelocityVecDim = 3>
void terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::force_slow_path ( )
inline

◆ kernel_path()

template<typename ScalarT , int VelocityVecDim = 3>
KernelPath terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::kernel_path ( ) const
inline

◆ path_name()

template<typename ScalarT , int VelocityVecDim = 3>
const char * terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::path_name ( ) const
inline

◆ team_shmem_size()

template<typename ScalarT , int VelocityVecDim = 3>
size_t terra::fe::wedge::operators::shell::UnsteadyAdvectionDiffusionSUPGKerngen< ScalarT, VelocityVecDim >::team_shmem_size ( const int  ) const
inline

The documentation for this class was generated from the following file: