MFEM  v4.2.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Classes | Public Types | Static Public Member Functions | Static Public Attributes | List of all members
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. More...
 
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. More...
 
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. More...
 

Static Public Attributes

static const bool uses_Jacobians = true
 Needed for the TElementTransformation::Result class. More...
 
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

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

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.

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
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 369 of file tbilininteg.hpp.

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

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

Definition at line 292 of file tbilininteg.hpp.

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.

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

Definition at line 294 of file tbilininteg.hpp.

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

Definition at line 293 of file tbilininteg.hpp.

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: