deal.II version GIT relicensing-2206-gaa53ff9447 2024-12-02 09:10:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MeshWorker::Assembler::MGMatrixSimple< MatrixType > Class Template Reference

#include <deal.II/meshworker/simple.h>

Public Member Functions

 MGMatrixSimple (double threshold=1.e-12)
 
void initialize (MGLevelObject< MatrixType > &m)
 
void initialize (const MGConstrainedDoFs &mg_constrained_dofs)
 
void initialize_fluxes (MGLevelObject< MatrixType > &flux_up, MGLevelObject< MatrixType > &flux_down)
 
void initialize_interfaces (MGLevelObject< MatrixType > &interface_in, MGLevelObject< MatrixType > &interface_out)
 
template<class DOFINFO >
void initialize_info (DOFINFO &info, bool face) const
 
template<class DOFINFO >
void assemble (const DOFINFO &info)
 
template<class DOFINFO >
void assemble (const DOFINFO &info1, const DOFINFO &info2)
 

Private Member Functions

void assemble (MatrixType &G, const FullMatrix< double > &M, const std::vector< types::global_dof_index > &i1, const std::vector< types::global_dof_index > &i2)
 
void assemble (MatrixType &G, const FullMatrix< double > &M, const std::vector< types::global_dof_index > &i1, const std::vector< types::global_dof_index > &i2, const unsigned int level)
 
void assemble_up (MatrixType &G, const FullMatrix< double > &M, const std::vector< types::global_dof_index > &i1, const std::vector< types::global_dof_index > &i2, const unsigned int level=numbers::invalid_unsigned_int)
 
void assemble_down (MatrixType &G, const FullMatrix< double > &M, const std::vector< types::global_dof_index > &i1, const std::vector< types::global_dof_index > &i2, const unsigned int level=numbers::invalid_unsigned_int)
 
void assemble_in (MatrixType &G, const FullMatrix< double > &M, const std::vector< types::global_dof_index > &i1, const std::vector< types::global_dof_index > &i2, const unsigned int level=numbers::invalid_unsigned_int)
 
void assemble_out (MatrixType &G, const FullMatrix< double > &M, const std::vector< types::global_dof_index > &i1, const std::vector< types::global_dof_index > &i2, const unsigned int level=numbers::invalid_unsigned_int)
 

Private Attributes

ObserverPointer< MGLevelObject< MatrixType >, MGMatrixSimple< MatrixType > > matrix
 
ObserverPointer< MGLevelObject< MatrixType >, MGMatrixSimple< MatrixType > > flux_up
 
ObserverPointer< MGLevelObject< MatrixType >, MGMatrixSimple< MatrixType > > flux_down
 
ObserverPointer< MGLevelObject< MatrixType >, MGMatrixSimple< MatrixType > > interface_in
 
ObserverPointer< MGLevelObject< MatrixType >, MGMatrixSimple< MatrixType > > interface_out
 
ObserverPointer< const MGConstrainedDoFs, MGMatrixSimple< MatrixType > > mg_constrained_dofs
 
const double threshold
 

Detailed Description

template<typename MatrixType>
class MeshWorker::Assembler::MGMatrixSimple< MatrixType >

Assemble local matrices into level matrices without using block structure.

Todo:
The matrix structures needed for assembling level matrices with local refinement and continuous elements are missing.

Definition at line 253 of file simple.h.

Constructor & Destructor Documentation

◆ MGMatrixSimple()

template<typename MatrixType >
MeshWorker::Assembler::MGMatrixSimple< MatrixType >::MGMatrixSimple ( double  threshold = 1.e-12)
inline

Constructor, initializing the threshold, which limits how small numbers may be to be entered into the matrix.

Definition at line 760 of file simple.h.

Member Function Documentation

◆ initialize() [1/2]

template<typename MatrixType >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::initialize ( MGLevelObject< MatrixType > &  m)
inline

Store the result matrix for later assembling.

Definition at line 767 of file simple.h.

◆ initialize() [2/2]

template<typename MatrixType >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::initialize ( const MGConstrainedDoFs mg_constrained_dofs)
inline

Initialize the multilevel constraints.

Definition at line 774 of file simple.h.

◆ initialize_fluxes()

template<typename MatrixType >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::initialize_fluxes ( MGLevelObject< MatrixType > &  flux_up,
MGLevelObject< MatrixType > &  flux_down 
)
inline

Initialize the matrices flux_up and flux_down used for local refinement with discontinuous Galerkin methods.

Definition at line 782 of file simple.h.

◆ initialize_interfaces()

template<typename MatrixType >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::initialize_interfaces ( MGLevelObject< MatrixType > &  interface_in,
MGLevelObject< MatrixType > &  interface_out 
)
inline

Initialize the matrices interface_in and interface_out used for local refinement with continuous Galerkin methods.

Definition at line 793 of file simple.h.

◆ initialize_info()

template<typename MatrixType >
template<class DOFINFO >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::initialize_info ( DOFINFO &  info,
bool  face 
) const
inline

Initialize the local data in the DoFInfo object used later for assembling.

The info object refers to a cell if !face, or else to an interior or boundary face.

Definition at line 805 of file simple.h.

◆ assemble() [1/4]

template<typename MatrixType >
template<class DOFINFO >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::assemble ( const DOFINFO &  info)
inline

Assemble the matrix DoFInfo::M1[0] into the global matrix.

Definition at line 1033 of file simple.h.

◆ assemble() [2/4]

template<typename MatrixType >
template<class DOFINFO >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::assemble ( const DOFINFO &  info1,
const DOFINFO &  info2 
)
inline

Assemble both local matrices in the info1 and info2 objects into the global matrices.

Definition at line 1091 of file simple.h.

◆ assemble() [3/4]

template<typename MatrixType >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::assemble ( MatrixType &  G,
const FullMatrix< double > &  M,
const std::vector< types::global_dof_index > &  i1,
const std::vector< types::global_dof_index > &  i2 
)
inlineprivate

Assemble a single matrix into a global matrix.

Definition at line 832 of file simple.h.

◆ assemble() [4/4]

template<typename MatrixType >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::assemble ( MatrixType &  G,
const FullMatrix< double > &  M,
const std::vector< types::global_dof_index > &  i1,
const std::vector< types::global_dof_index > &  i2,
const unsigned int  level 
)
inlineprivate

Assemble a single matrix into a global matrix.

Definition at line 852 of file simple.h.

◆ assemble_up()

template<typename MatrixType >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::assemble_up ( MatrixType &  G,
const FullMatrix< double > &  M,
const std::vector< types::global_dof_index > &  i1,
const std::vector< types::global_dof_index > &  i2,
const unsigned int  level = numbers::invalid_unsigned_int 
)
inlineprivate

Assemble a single matrix into a global matrix.

Definition at line 905 of file simple.h.

◆ assemble_down()

template<typename MatrixType >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::assemble_down ( MatrixType &  G,
const FullMatrix< double > &  M,
const std::vector< types::global_dof_index > &  i1,
const std::vector< types::global_dof_index > &  i2,
const unsigned int  level = numbers::invalid_unsigned_int 
)
inlineprivate

Assemble a single matrix into a global matrix.

Definition at line 934 of file simple.h.

◆ assemble_in()

template<typename MatrixType >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::assemble_in ( MatrixType &  G,
const FullMatrix< double > &  M,
const std::vector< types::global_dof_index > &  i1,
const std::vector< types::global_dof_index > &  i2,
const unsigned int  level = numbers::invalid_unsigned_int 
)
inlineprivate

Assemble a single matrix into a global matrix.

Definition at line 963 of file simple.h.

◆ assemble_out()

template<typename MatrixType >
void MeshWorker::Assembler::MGMatrixSimple< MatrixType >::assemble_out ( MatrixType &  G,
const FullMatrix< double > &  M,
const std::vector< types::global_dof_index > &  i1,
const std::vector< types::global_dof_index > &  i2,
const unsigned int  level = numbers::invalid_unsigned_int 
)
inlineprivate

Assemble a single matrix into a global matrix.

Definition at line 1003 of file simple.h.

Member Data Documentation

◆ matrix

template<typename MatrixType >
ObserverPointer<MGLevelObject<MatrixType>, MGMatrixSimple<MatrixType> > MeshWorker::Assembler::MGMatrixSimple< MatrixType >::matrix
private

The global matrix being assembled.

Definition at line 382 of file simple.h.

◆ flux_up

template<typename MatrixType >
ObserverPointer<MGLevelObject<MatrixType>, MGMatrixSimple<MatrixType> > MeshWorker::Assembler::MGMatrixSimple< MatrixType >::flux_up
private

The matrix used for face flux terms across the refinement edge, coupling coarse to fine.

Definition at line 389 of file simple.h.

◆ flux_down

template<typename MatrixType >
ObserverPointer<MGLevelObject<MatrixType>, MGMatrixSimple<MatrixType> > MeshWorker::Assembler::MGMatrixSimple< MatrixType >::flux_down
private

The matrix used for face flux terms across the refinement edge, coupling fine to coarse.

Definition at line 396 of file simple.h.

◆ interface_in

template<typename MatrixType >
ObserverPointer<MGLevelObject<MatrixType>, MGMatrixSimple<MatrixType> > MeshWorker::Assembler::MGMatrixSimple< MatrixType >::interface_in
private

The matrix used for face contributions for continuous elements across the refinement edge, coupling coarse to fine.

Definition at line 403 of file simple.h.

◆ interface_out

template<typename MatrixType >
ObserverPointer<MGLevelObject<MatrixType>, MGMatrixSimple<MatrixType> > MeshWorker::Assembler::MGMatrixSimple< MatrixType >::interface_out
private

The matrix used for face contributions for continuous elements across the refinement edge, coupling fine to coarse.

Definition at line 410 of file simple.h.

◆ mg_constrained_dofs

template<typename MatrixType >
ObserverPointer<const MGConstrainedDoFs, MGMatrixSimple<MatrixType> > MeshWorker::Assembler::MGMatrixSimple< MatrixType >::mg_constrained_dofs
private

A pointer to the object containing constraints.

Definition at line 415 of file simple.h.

◆ threshold

template<typename MatrixType >
const double MeshWorker::Assembler::MGMatrixSimple< MatrixType >::threshold
private

The smallest positive number that will be entered into the global matrix. All smaller absolute values will be treated as zero and will not be assembled.

Definition at line 422 of file simple.h.


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