MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::TDiffusionKernel< 3, 3, complex_t > Struct Template Reference

Diffusion kernel in 3D. More...

#include <tbilininteg.hpp>

Classes

struct  CoefficientEval
 
struct  f_asm_data
 Partially assembled data type for one element with the given number of quadrature points. This type is used in full element matrix assembly. Stores one general (non-symmetric) 3 x 3 matrix per point. More...
 
struct  p_asm_data
 Partially assembled data type for one element with the given number of quadrature points. This type is used in partial assembly, and partially assembled action. Stores one symmetric 3 x 3 matrix per point. More...
 

Public Types

typedef complex_t complex_type
 

Static Public Member Functions

template<typename T_result_t , typename Q_t , typename q_t , typename S_data_t >
static MFEM_ALWAYS_INLINE void Action (const int k, const T_result_t &F, const Q_t &Q, const q_t &q, S_data_t &R)
 Method used for un-assembled (matrix free) action. grad_qpts = (w/det(J)) adj(J) adj(J)^t grad_qpts Jt [M x Dim x SDim x NE] - Jacobian transposed, data member in F Q - CoefficientEval<>::Type q - CoefficientEval<>::Type::result_t grad_qpts [M x SDim x NC x NE] - in/out data member in R.
 
template<typename T_result_t , typename Q_t , typename q_t , typename asm_type >
static MFEM_ALWAYS_INLINE void Assemble (const int k, const T_result_t &F, const Q_t &Q, const q_t &q, asm_type &A)
 Method defining partial assembly. The pointwise Dim x Dim matrices are stored as symmetric (when asm_type == p_asm_data, i.e. A.layout.rank == 2) or non-symmetric (when asm_type == f_asm_data, i.e. A.layout.rank == 3) matrices. A = (w/det(J)) adj(J) adj(J)^t Jt [M x Dim x SDim x NE] - Jacobian transposed, data member in F Q - CoefficientEval<>::Type q - CoefficientEval<>::Type::result_t A [M x Dim*(Dim+1)/2] - partially assembled Dim x Dim symm. matrices A [M x Dim x Dim] - partially assembled Dim x Dim matrices.
 
template<int qpts, typename S_data_t >
static MFEM_ALWAYS_INLINE void MultAssembled (const int k, const TMatrix< qpts, 6, complex_t > &A, S_data_t &R)
 Method for partially assembled action. A [M x Dim*(Dim+1)/2] - partially assembled Dim x Dim symmetric matrices grad_qpts [M x SDim x NC x NE] - in/out data member in R grad_qpts = A grad_qpts.
 

Static Public Attributes

static const bool uses_Jacobians = true
 Needed for the TElementTransformation::Result class.
 
static const bool in_values = false
 
static const bool in_gradients = true
 
static const bool out_values = false
 
static const bool out_gradients = true
 

Detailed Description

template<typename complex_t>
struct mfem::TDiffusionKernel< 3, 3, complex_t >

Diffusion kernel in 3D.

Definition at line 428 of file tbilininteg.hpp.

Member Typedef Documentation

◆ complex_type

template<typename complex_t >
typedef complex_t mfem::TDiffusionKernel< 3, 3, complex_t >::complex_type

Definition at line 430 of file tbilininteg.hpp.

Member Function Documentation

◆ Action()

template<typename complex_t >
template<typename T_result_t , typename Q_t , typename q_t , typename S_data_t >
static MFEM_ALWAYS_INLINE void mfem::TDiffusionKernel< 3, 3, complex_t >::Action ( const int k,
const T_result_t & F,
const Q_t & Q,
const q_t & q,
S_data_t & R )
inlinestatic

Method used for un-assembled (matrix free) action. grad_qpts = (w/det(J)) adj(J) adj(J)^t grad_qpts Jt [M x Dim x SDim x NE] - Jacobian transposed, data member in F Q - CoefficientEval<>::Type q - CoefficientEval<>::Type::result_t grad_qpts [M x SDim x NC x NE] - in/out data member in R.

Definition at line 471 of file tbilininteg.hpp.

◆ Assemble()

template<typename complex_t >
template<typename T_result_t , typename Q_t , typename q_t , typename asm_type >
static MFEM_ALWAYS_INLINE void mfem::TDiffusionKernel< 3, 3, complex_t >::Assemble ( const int k,
const T_result_t & F,
const Q_t & Q,
const q_t & q,
asm_type & A )
inlinestatic

Method defining partial assembly. The pointwise Dim x Dim matrices are stored as symmetric (when asm_type == p_asm_data, i.e. A.layout.rank == 2) or non-symmetric (when asm_type == f_asm_data, i.e. A.layout.rank == 3) matrices. A = (w/det(J)) adj(J) adj(J)^t Jt [M x Dim x SDim x NE] - Jacobian transposed, data member in F Q - CoefficientEval<>::Type q - CoefficientEval<>::Type::result_t A [M x Dim*(Dim+1)/2] - partially assembled Dim x Dim symm. matrices A [M x Dim x Dim] - partially assembled Dim x Dim matrices.

Definition at line 512 of file tbilininteg.hpp.

◆ MultAssembled()

template<typename complex_t >
template<int qpts, typename S_data_t >
static MFEM_ALWAYS_INLINE void mfem::TDiffusionKernel< 3, 3, complex_t >::MultAssembled ( const int k,
const TMatrix< qpts, 6, complex_t > & A,
S_data_t & R )
inlinestatic

Method for partially assembled action. A [M x Dim*(Dim+1)/2] - partially assembled Dim x Dim symmetric matrices grad_qpts [M x SDim x NC x NE] - in/out data member in R grad_qpts = A grad_qpts.

Definition at line 548 of file tbilininteg.hpp.

Member Data Documentation

◆ in_gradients

template<typename complex_t >
const bool mfem::TDiffusionKernel< 3, 3, complex_t >::in_gradients = true
static

Definition at line 438 of file tbilininteg.hpp.

◆ in_values

template<typename complex_t >
const bool mfem::TDiffusionKernel< 3, 3, complex_t >::in_values = false
static

Needed for the FieldEvaluator::Data class

Definition at line 437 of file tbilininteg.hpp.

◆ out_gradients

template<typename complex_t >
const bool mfem::TDiffusionKernel< 3, 3, complex_t >::out_gradients = true
static

Definition at line 440 of file tbilininteg.hpp.

◆ out_values

template<typename complex_t >
const bool mfem::TDiffusionKernel< 3, 3, complex_t >::out_values = false
static

Definition at line 439 of file tbilininteg.hpp.

◆ uses_Jacobians

template<typename complex_t >
const bool mfem::TDiffusionKernel< 3, 3, complex_t >::uses_Jacobians = true
static

Needed for the TElementTransformation::Result class.

Definition at line 433 of file tbilininteg.hpp.


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