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

Diffusion kernel in 2D. 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) 2 x 2 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 2 x 2 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.
 
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.
 
template<int qpts, typename S_data_t >
static MFEM_ALWAYS_INLINE void MultAssembled (const int k, const TMatrix< qpts, 3, complex_t > &A, S_data_t &R)
 Method for partially assembled action.
 

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< 2, 2, complex_t >

Diffusion kernel in 2D.

Definition at line 282 of file tbilininteg.hpp.

Member Typedef Documentation

◆ complex_type

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

Definition at line 284 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< 2, 2, 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.

Parameters
kthe element number
FJt [M x Dim x SDim x NE] - Jacobian transposed, data member in F
QCoefficientEval<>::Type
qCoefficientEval<>::Type::result_t
Rgrad_qpts [M x SDim x NC x NE] - in/out data member in R grad_qpts = (w/det(J)) adj(J) adj(J)^t grad_qpts

Definition at line 326 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< 2, 2, 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.

Parameters
kthe element number
FJt [M x Dim x SDim x NE] - Jacobian transposed, data member in F
QCoefficientEval<>::Type
qCoefficientEval<>::Type::result_t
Aeither [M x Dim*(Dim+1)/2] partially assembled Dim x Dim symm. matrices, or [M x Dim x Dim] partially assembled Dim x Dim matrices.

Definition at line 369 of file tbilininteg.hpp.

◆ MultAssembled()

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

Method for partially assembled action.

Parameters
kthe element number
A[M x Dim*(Dim+1)/2] - partially assembled Dim x Dim symmetric matrices
Rgrad_qpts [M x SDim x NC x NE] - in/out data member in R grad_qpts = A grad_qpts

Definition at line 403 of file tbilininteg.hpp.

Member Data Documentation

◆ in_gradients

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

Definition at line 292 of file tbilininteg.hpp.

◆ in_values

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

Needed for the FieldEvaluator::Data class

Definition at line 291 of file tbilininteg.hpp.

◆ out_gradients

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

Definition at line 294 of file tbilininteg.hpp.

◆ out_values

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

Definition at line 293 of file tbilininteg.hpp.

◆ uses_Jacobians

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

Needed for the TElementTransformation::Result class.

Definition at line 287 of file tbilininteg.hpp.


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