v0.16.3
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
MoFEM::BlockStorage::Pattern Struct Reference

Block pattern of A00 element and layout of element buffer. More...

Collaboration diagram for MoFEM::BlockStorage::Pattern:
[legend]

Public Types

enum  State { LISTED , BLOCK , DENSE }
 

Public Member Functions

long sShift (int r, int c) const
 
int sLd (int r, int c) const
 
bool isListed (int r, int c) const
 
long mShift (int a, int b) const
 shift of block (a, b) of M = A^T, column-major
 
int mLd (int a, int b) const
 leading dimension of block (a, b) of M = A^T
 

Public Attributes

int nbNodes = 0
 
int size = 0
 DOFs per element.
 
int nbElems = 0
 
int nbListed = 0
 
std::vector< int > nodeSize
 
std::vector< std::string > nodeName
 
std::vector< char > listed
 nbNodes x nbNodes, slot (r, c) is listed
 
State state = LISTED
 
std::vector< long > slotShift
 nbNodes x nbNodes, -1 if not stored
 
std::vector< int > slotLd
 
std::vector< int > nodeOffset
 offset of node DOFs in element vector
 
std::vector< int > order
 nodes eliminated block by block
 
std::vector< int > core
 nodes of dense core
 
size_t coreShift = 0
 shift of dense core in element buffer
 
int coreSize = 0
 DOFs in dense core.
 
int coreOffset = 0
 offset of core DOFs in element vector
 
size_t elemSize = 0
 doubles in element buffer
 
int nbFallback = 0
 elements factorised dense in last factorisation
 
double beRef = 0
 backward error of dense solve on probe
 
double beMax = 0
 largest backward error in last factorisation
 
bool warned = false
 

Detailed Description

Block pattern of A00 element and layout of element buffer.

Node is an entity of the element. Slot (r, c) couples row node r with column node c. It is stored row-major at slotShift with leading dimension slotLd, which read column-major is block (c, r) of M = A^T.

Definition at line 317 of file Schur.cpp.

Member Enumeration Documentation

◆ State

Enumerator
LISTED 

listed blocks only, not analysed

BLOCK 

block elimination of order nodes, then dense core

DENSE 

dense element matrix (core contains all nodes)

Definition at line 319 of file Schur.cpp.

319 {
320 LISTED, ///< listed blocks only, not analysed
321 BLOCK, ///< block elimination of order nodes, then dense core
322 DENSE ///< dense element matrix (core contains all nodes)
323 };
@ LISTED
listed blocks only, not analysed
Definition Schur.cpp:320
@ DENSE
dense element matrix (core contains all nodes)
Definition Schur.cpp:322
@ BLOCK
block elimination of order nodes, then dense core
Definition Schur.cpp:321

Member Function Documentation

◆ isListed()

bool MoFEM::BlockStorage::Pattern::isListed ( int  r,
int  c 
) const
inline

Definition at line 353 of file Schur.cpp.

353{ return listed[r * nbNodes + c]; }
const double c
speed of light (cm/ns)
int r
Definition sdf.py:205
std::vector< char > listed
nbNodes x nbNodes, slot (r, c) is listed
Definition Schur.cpp:331

◆ mLd()

int MoFEM::BlockStorage::Pattern::mLd ( int  a,
int  b 
) const
inline

leading dimension of block (a, b) of M = A^T

Definition at line 357 of file Schur.cpp.

357{ return sLd(b, a); }
constexpr double a
int sLd(int r, int c) const
Definition Schur.cpp:352

◆ mShift()

long MoFEM::BlockStorage::Pattern::mShift ( int  a,
int  b 
) const
inline

shift of block (a, b) of M = A^T, column-major

Definition at line 355 of file Schur.cpp.

355{ return sShift(b, a); }
long sShift(int r, int c) const
Definition Schur.cpp:349

◆ sLd()

int MoFEM::BlockStorage::Pattern::sLd ( int  r,
int  c 
) const
inline

Definition at line 352 of file Schur.cpp.

352{ return slotLd[r * nbNodes + c]; }
std::vector< int > slotLd
Definition Schur.cpp:335

◆ sShift()

long MoFEM::BlockStorage::Pattern::sShift ( int  r,
int  c 
) const
inline

Definition at line 349 of file Schur.cpp.

349 {
350 return slotShift[r * nbNodes + c];
351 }
std::vector< long > slotShift
nbNodes x nbNodes, -1 if not stored
Definition Schur.cpp:334

Member Data Documentation

◆ beMax

double MoFEM::BlockStorage::Pattern::beMax = 0

largest backward error in last factorisation

Definition at line 346 of file Schur.cpp.

◆ beRef

double MoFEM::BlockStorage::Pattern::beRef = 0

backward error of dense solve on probe

Definition at line 345 of file Schur.cpp.

◆ core

std::vector<int> MoFEM::BlockStorage::Pattern::core

nodes of dense core

Definition at line 338 of file Schur.cpp.

◆ coreOffset

int MoFEM::BlockStorage::Pattern::coreOffset = 0

offset of core DOFs in element vector

Definition at line 341 of file Schur.cpp.

◆ coreShift

size_t MoFEM::BlockStorage::Pattern::coreShift = 0

shift of dense core in element buffer

Definition at line 339 of file Schur.cpp.

◆ coreSize

int MoFEM::BlockStorage::Pattern::coreSize = 0

DOFs in dense core.

Definition at line 340 of file Schur.cpp.

◆ elemSize

size_t MoFEM::BlockStorage::Pattern::elemSize = 0

doubles in element buffer

Definition at line 342 of file Schur.cpp.

◆ listed

std::vector<char> MoFEM::BlockStorage::Pattern::listed

nbNodes x nbNodes, slot (r, c) is listed

Definition at line 331 of file Schur.cpp.

◆ nbElems

int MoFEM::BlockStorage::Pattern::nbElems = 0

Definition at line 327 of file Schur.cpp.

◆ nbFallback

int MoFEM::BlockStorage::Pattern::nbFallback = 0

elements factorised dense in last factorisation

Definition at line 344 of file Schur.cpp.

◆ nbListed

int MoFEM::BlockStorage::Pattern::nbListed = 0

Definition at line 328 of file Schur.cpp.

◆ nbNodes

int MoFEM::BlockStorage::Pattern::nbNodes = 0

Definition at line 325 of file Schur.cpp.

◆ nodeName

std::vector<std::string> MoFEM::BlockStorage::Pattern::nodeName

Definition at line 330 of file Schur.cpp.

◆ nodeOffset

std::vector<int> MoFEM::BlockStorage::Pattern::nodeOffset

offset of node DOFs in element vector

Definition at line 336 of file Schur.cpp.

◆ nodeSize

std::vector<int> MoFEM::BlockStorage::Pattern::nodeSize

Definition at line 329 of file Schur.cpp.

◆ order

std::vector<int> MoFEM::BlockStorage::Pattern::order

nodes eliminated block by block

Definition at line 337 of file Schur.cpp.

◆ size

int MoFEM::BlockStorage::Pattern::size = 0

DOFs per element.

Definition at line 326 of file Schur.cpp.

◆ slotLd

std::vector<int> MoFEM::BlockStorage::Pattern::slotLd

Definition at line 335 of file Schur.cpp.

◆ slotShift

std::vector<long> MoFEM::BlockStorage::Pattern::slotShift

nbNodes x nbNodes, -1 if not stored

Definition at line 334 of file Schur.cpp.

◆ state

State MoFEM::BlockStorage::Pattern::state = LISTED

Definition at line 333 of file Schur.cpp.

◆ warned

bool MoFEM::BlockStorage::Pattern::warned = false

Definition at line 347 of file Schur.cpp.


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