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

#include <div_k_grad.hpp>

Public Types

using SrcVectorType = linalg::VectorQ1Scalar< ScalarT >
 
using DstVectorType = linalg::VectorQ1Scalar< ScalarT >
 
using ScalarType = ScalarT
 
using LocalMatrixStorage = linalg::solvers::LocalMatrixStorage< ScalarType, LocalMatrixDim >
 

Public Member Functions

 DivKGrad (const grid::shell::DistributedDomain &domain, const grid::Grid3DDataVec< ScalarT, 3 > &grid, const grid::Grid2DDataScalar< ScalarT > &radii, const grid::Grid4DDataScalar< grid::shell::ShellBoundaryFlag > &mask, const grid::Grid4DDataScalar< ScalarType > &k, bool treat_boundary, bool diagonal, linalg::OperatorApplyMode operator_apply_mode=linalg::OperatorApplyMode::Replace, linalg::OperatorCommunicationMode operator_communication_mode=linalg::OperatorCommunicationMode::CommunicateAdditively, linalg::OperatorStoredMatrixMode operator_stored_matrix_mode=linalg::OperatorStoredMatrixMode::Off)
 
bool has_flag (const int local_subdomain_id, const int x_cell, const int y_cell, const int r_cell, grid::shell::ShellBoundaryFlag flag) const
 Getter for mask member.
 
void set_operator_apply_and_communication_modes (const linalg::OperatorApplyMode operator_apply_mode, const linalg::OperatorCommunicationMode operator_communication_mode)
 
void set_diagonal (bool v)
 S/Getter for diagonal member.
 
const grid::Grid4DDataScalar< ScalarType > & k_grid_data ()
 Getter for coefficient.
 
const grid::shell::DistributedDomainget_domain () const
 Getter for domain member.
 
grid::Grid2DDataScalar< ScalarT > get_radii () const
 Getter for radii member.
 
grid::Grid3DDataVec< ScalarT, 3 > get_grid () const
 Getter for grid member.
 
void set_single_quadpoint (bool v)
 S/Getter for quadpoint member.
 
void set_stored_matrix_mode (linalg::OperatorStoredMatrixMode operator_stored_matrix_mode, int level_range, grid::Grid4DDataScalar< ScalarType > GCAElements)
 
linalg::OperatorStoredMatrixMode get_stored_matrix_mode ()
 
void set_local_matrix (const int local_subdomain_id, const int x_cell, const int y_cell, const int r_cell, const int wedge, const dense::Mat< ScalarT, LocalMatrixDim, LocalMatrixDim > &mat) const
 Set the local matrix stored in the operator.
 
dense::Mat< ScalarT, LocalMatrixDim, LocalMatrixDimget_local_matrix (const int local_subdomain_id, const int x_cell, const int y_cell, const int r_cell, const int wedge) const
 Retrives the local matrix if there is stored local matrices, the desired local matrix is loaded and returned if not, the local matrix is assembled on-the-fly.
 
void apply_impl (const SrcVectorType &src, DstVectorType &dst)
 
void operator() (const int local_subdomain_id, const int x_cell, const int y_cell, const int r_cell) const
 
void assemble_trial_test_vecs (const int wedge, const dense::Vec< ScalarType, 3 > &quad_point, const ScalarType quad_weight, const ScalarT r_1, const ScalarT r_2, dense::Vec< ScalarT, 3 >(*wedge_phy_surf)[3], const dense::Vec< ScalarT, 6 > *k_local_hex, dense::Vec< ScalarType, 3 > *grad, ScalarType &jdet_quadweight) const
 
dense::Mat< ScalarT, LocalMatrixDim, LocalMatrixDimassemble_local_matrix (const int local_subdomain_id, const int x_cell, const int y_cell, const int r_cell, const int wedge) const
 assemble the local matrix and return it for a given element, wedge, and vectorial component (determined by dimi, dimj)
 
void fused_local_mv (ScalarType src_local_hex[8], ScalarType dst_local_hex[8], const int wedge, const ScalarType jdet_keval_quadweight, dense::Vec< ScalarType, 3 > *grad, int r_cell) const
 

Static Public Attributes

static constexpr int LocalMatrixDim = 6
 

Member Typedef Documentation

◆ DstVectorType

template<typename ScalarT >
using terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::DstVectorType = linalg::VectorQ1Scalar< ScalarT >

◆ LocalMatrixStorage

template<typename ScalarT >
using terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::LocalMatrixStorage = linalg::solvers::LocalMatrixStorage< ScalarType, LocalMatrixDim >

◆ ScalarType

template<typename ScalarT >
using terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::ScalarType = ScalarT

◆ SrcVectorType

template<typename ScalarT >
using terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::SrcVectorType = linalg::VectorQ1Scalar< ScalarT >

Constructor & Destructor Documentation

◆ DivKGrad()

template<typename ScalarT >
terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::DivKGrad ( const grid::shell::DistributedDomain domain,
const grid::Grid3DDataVec< ScalarT, 3 > &  grid,
const grid::Grid2DDataScalar< ScalarT > &  radii,
const grid::Grid4DDataScalar< grid::shell::ShellBoundaryFlag > &  mask,
const grid::Grid4DDataScalar< ScalarType > &  k,
bool  treat_boundary,
bool  diagonal,
linalg::OperatorApplyMode  operator_apply_mode = linalg::OperatorApplyMode::Replace,
linalg::OperatorCommunicationMode  operator_communication_mode = linalg::OperatorCommunicationMode::CommunicateAdditively,
linalg::OperatorStoredMatrixMode  operator_stored_matrix_mode = linalg::OperatorStoredMatrixMode::Off 
)
inline

Member Function Documentation

◆ apply_impl()

template<typename ScalarT >
void terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::apply_impl ( const SrcVectorType src,
DstVectorType dst 
)
inline

◆ assemble_local_matrix()

template<typename ScalarT >
dense::Mat< ScalarT, LocalMatrixDim, LocalMatrixDim > terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::assemble_local_matrix ( const int  local_subdomain_id,
const int  x_cell,
const int  y_cell,
const int  r_cell,
const int  wedge 
) const
inline

assemble the local matrix and return it for a given element, wedge, and vectorial component (determined by dimi, dimj)

◆ assemble_trial_test_vecs()

template<typename ScalarT >
void terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::assemble_trial_test_vecs ( const int  wedge,
const dense::Vec< ScalarType, 3 > &  quad_point,
const ScalarType  quad_weight,
const ScalarT  r_1,
const ScalarT  r_2,
dense::Vec< ScalarT, 3 >(*)  wedge_phy_surf[3],
const dense::Vec< ScalarT, 6 > *  k_local_hex,
dense::Vec< ScalarType, 3 > *  grad,
ScalarType jdet_quadweight 
) const
inline

◆ fused_local_mv()

template<typename ScalarT >
void terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::fused_local_mv ( ScalarType  src_local_hex[8],
ScalarType  dst_local_hex[8],
const int  wedge,
const ScalarType  jdet_keval_quadweight,
dense::Vec< ScalarType, 3 > *  grad,
int  r_cell 
) const
inline

◆ get_domain()

template<typename ScalarT >
const grid::shell::DistributedDomain & terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::get_domain ( ) const
inline

Getter for domain member.

◆ get_grid()

template<typename ScalarT >
grid::Grid3DDataVec< ScalarT, 3 > terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::get_grid ( ) const
inline

Getter for grid member.

◆ get_local_matrix()

template<typename ScalarT >
dense::Mat< ScalarT, LocalMatrixDim, LocalMatrixDim > terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::get_local_matrix ( const int  local_subdomain_id,
const int  x_cell,
const int  y_cell,
const int  r_cell,
const int  wedge 
) const
inline

Retrives the local matrix if there is stored local matrices, the desired local matrix is loaded and returned if not, the local matrix is assembled on-the-fly.

◆ get_radii()

template<typename ScalarT >
grid::Grid2DDataScalar< ScalarT > terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::get_radii ( ) const
inline

Getter for radii member.

◆ get_stored_matrix_mode()

template<typename ScalarT >
linalg::OperatorStoredMatrixMode terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::get_stored_matrix_mode ( )
inline

◆ has_flag()

template<typename ScalarT >
bool terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::has_flag ( const int  local_subdomain_id,
const int  x_cell,
const int  y_cell,
const int  r_cell,
grid::shell::ShellBoundaryFlag  flag 
) const
inline

Getter for mask member.

◆ k_grid_data()

template<typename ScalarT >
const grid::Grid4DDataScalar< ScalarType > & terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::k_grid_data ( )
inline

Getter for coefficient.

◆ operator()()

template<typename ScalarT >
void terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::operator() ( const int  local_subdomain_id,
const int  x_cell,
const int  y_cell,
const int  r_cell 
) const
inline

◆ set_diagonal()

template<typename ScalarT >
void terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::set_diagonal ( bool  v)
inline

S/Getter for diagonal member.

◆ set_local_matrix()

template<typename ScalarT >
void terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::set_local_matrix ( const int  local_subdomain_id,
const int  x_cell,
const int  y_cell,
const int  r_cell,
const int  wedge,
const dense::Mat< ScalarT, LocalMatrixDim, LocalMatrixDim > &  mat 
) const
inline

Set the local matrix stored in the operator.

◆ set_operator_apply_and_communication_modes()

template<typename ScalarT >
void terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::set_operator_apply_and_communication_modes ( const linalg::OperatorApplyMode  operator_apply_mode,
const linalg::OperatorCommunicationMode  operator_communication_mode 
)
inline

◆ set_single_quadpoint()

template<typename ScalarT >
void terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::set_single_quadpoint ( bool  v)
inline

S/Getter for quadpoint member.

◆ set_stored_matrix_mode()

template<typename ScalarT >
void terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::set_stored_matrix_mode ( linalg::OperatorStoredMatrixMode  operator_stored_matrix_mode,
int  level_range,
grid::Grid4DDataScalar< ScalarType GCAElements 
)
inline

Member Data Documentation

◆ LocalMatrixDim

template<typename ScalarT >
constexpr int terra::fe::wedge::operators::shell::DivKGrad< ScalarT >::LocalMatrixDim = 6
staticconstexpr

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