MFEM v4.10.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::DenseTensor Class Reference

Rank 3 tensor (array of matrices) More...

#include <densemat.hpp>

Public Member Functions

 DenseTensor ()
 
 DenseTensor (const DenseTensor &other)
 
 DenseTensor (DenseTensor &&other)
 
 DenseTensor (int i, int j, int k)
 
 DenseTensor (real_t *d, int i, int j, int k)
 
 DenseTensor (int i, int j, int k, MemoryType mt)
 
DenseTensoroperator= (const DenseTensor &other)
 
DenseTensoroperator= (DenseTensor &&other)
 
int SizeI () const
 
int SizeJ () const
 
int SizeK () const
 
int TotalSize () const
 
void SetSize (int i, int j, int k, MemoryType mt_=MemoryType::PRESERVE)
 
void UseExternalData (real_t *ext_data, int i, int j, int k)
 
void NewMemoryAndSize (const Memory< real_t > &mem, int i, int j, int k, bool own_mem)
 Reset the DenseTensor to use the given external Memory mem and dimensions i, j, and k.
 
DenseTensoroperator= (real_t c)
 Sets the tensor elements equal to constant c.
 
DenseMatrixoperator() (int k)
 
const DenseMatrixoperator() (int k) const
 
DenseMatrixoperator() (int k, DenseMatrix &buff)
 
const DenseMatrixoperator() (int k, DenseMatrix &buff) const
 
real_toperator() (int i, int j, int k)
 
const real_toperator() (int i, int j, int k) const
 
real_tGetData (int k)
 
const real_tGetData (int k) const
 
real_tData ()
 
const real_tData () const
 
Memory< real_t > & GetMemory ()
 
const Memory< real_t > & GetMemory () const
 
void AddMult (const Table &elem_dof, const Vector &x, Vector &y) const
 
void Clear ()
 
std::size_t MemoryUsage () const
 
const real_tRead (bool on_dev=true) const
 Shortcut for mfem::Read( GetMemory(), TotalSize(), on_dev).
 
const real_tHostRead () const
 Shortcut for mfem::Read(GetMemory(), TotalSize(), false).
 
real_tWrite (bool on_dev=true)
 Shortcut for mfem::Write(GetMemory(), TotalSize(), on_dev).
 
real_tHostWrite ()
 Shortcut for mfem::Write(GetMemory(), TotalSize(), false).
 
real_tReadWrite (bool on_dev=true)
 Shortcut for mfem::ReadWrite(GetMemory(), TotalSize(), on_dev).
 
real_tHostReadWrite ()
 Shortcut for mfem::ReadWrite(GetMemory(), TotalSize(), false).
 
void Swap (DenseTensor &t)
 

Detailed Description

Rank 3 tensor (array of matrices)

Definition at line 1130 of file densemat.hpp.

Constructor & Destructor Documentation

◆ DenseTensor() [1/6]

mfem::DenseTensor::DenseTensor ( )
inline

Definition at line 1138 of file densemat.hpp.

◆ DenseTensor() [2/6]

mfem::DenseTensor::DenseTensor ( const DenseTensor & other)
inline

Definition at line 1140 of file densemat.hpp.

◆ DenseTensor() [3/6]

mfem::DenseTensor::DenseTensor ( DenseTensor && other)
inline

Definition at line 1143 of file densemat.hpp.

◆ DenseTensor() [4/6]

mfem::DenseTensor::DenseTensor ( int i,
int j,
int k )
inline

Definition at line 1151 of file densemat.hpp.

◆ DenseTensor() [5/6]

mfem::DenseTensor::DenseTensor ( real_t * d,
int i,
int j,
int k )
inline

Definition at line 1153 of file densemat.hpp.

◆ DenseTensor() [6/6]

mfem::DenseTensor::DenseTensor ( int i,
int j,
int k,
MemoryType mt )
inline

Definition at line 1156 of file densemat.hpp.

Member Function Documentation

◆ AddMult()

void mfem::DenseTensor::AddMult ( const Table & elem_dof,
const Vector & x,
Vector & y ) const

Matrix-vector product from unassembled element matrices, assuming both 'x' and 'y' use the same elem_dof table.

Definition at line 4356 of file densemat.cpp.

◆ Clear()

void mfem::DenseTensor::Clear ( )
inline

Definition at line 1294 of file densemat.hpp.

◆ Data() [1/2]

real_t * mfem::DenseTensor::Data ( )
inline

Definition at line 1283 of file densemat.hpp.

◆ Data() [2/2]

const real_t * mfem::DenseTensor::Data ( ) const
inline

Definition at line 1285 of file densemat.hpp.

◆ GetData() [1/2]

real_t * mfem::DenseTensor::GetData ( int k)
inline

Definition at line 1271 of file densemat.hpp.

◆ GetData() [2/2]

const real_t * mfem::DenseTensor::GetData ( int k) const
inline

Definition at line 1277 of file densemat.hpp.

◆ GetMemory() [1/2]

Memory< real_t > & mfem::DenseTensor::GetMemory ( )
inline

Definition at line 1287 of file densemat.hpp.

◆ GetMemory() [2/2]

const Memory< real_t > & mfem::DenseTensor::GetMemory ( ) const
inline

Definition at line 1288 of file densemat.hpp.

◆ HostRead()

const real_t * mfem::DenseTensor::HostRead ( ) const
inline

Shortcut for mfem::Read(GetMemory(), TotalSize(), false).

Definition at line 1303 of file densemat.hpp.

◆ HostReadWrite()

real_t * mfem::DenseTensor::HostReadWrite ( )
inline

Shortcut for mfem::ReadWrite(GetMemory(), TotalSize(), false).

Definition at line 1315 of file densemat.hpp.

◆ HostWrite()

real_t * mfem::DenseTensor::HostWrite ( )
inline

Shortcut for mfem::Write(GetMemory(), TotalSize(), false).

Definition at line 1309 of file densemat.hpp.

◆ MemoryUsage()

std::size_t mfem::DenseTensor::MemoryUsage ( ) const
inline

Definition at line 1297 of file densemat.hpp.

◆ NewMemoryAndSize()

void mfem::DenseTensor::NewMemoryAndSize ( const Memory< real_t > & mem,
int i,
int j,
int k,
bool own_mem )
inline

Reset the DenseTensor to use the given external Memory mem and dimensions i, j, and k.

If own_mem is false, the DenseTensor will not own any of the pointers of mem.

Note that when own_mem is true, the mem object can be destroyed immediately by the caller but mem.Delete() should NOT be called since the DenseTensor object takes ownership of all pointers owned by mem.

Definition at line 1221 of file densemat.hpp.

◆ operator()() [1/6]

real_t & mfem::DenseTensor::operator() ( int i,
int j,
int k )
inline

Definition at line 1255 of file densemat.hpp.

◆ operator()() [2/6]

const real_t & mfem::DenseTensor::operator() ( int i,
int j,
int k ) const
inline

Definition at line 1263 of file densemat.hpp.

◆ operator()() [3/6]

DenseMatrix & mfem::DenseTensor::operator() ( int k)
inline

Definition at line 1234 of file densemat.hpp.

◆ operator()() [4/6]

const DenseMatrix & mfem::DenseTensor::operator() ( int k) const
inline

Definition at line 1238 of file densemat.hpp.

◆ operator()() [5/6]

DenseMatrix & mfem::DenseTensor::operator() ( int k,
DenseMatrix & buff )
inline

Definition at line 1242 of file densemat.hpp.

◆ operator()() [6/6]

const DenseMatrix & mfem::DenseTensor::operator() ( int k,
DenseMatrix & buff ) const
inline

Definition at line 1248 of file densemat.hpp.

◆ operator=() [1/3]

DenseTensor & mfem::DenseTensor::operator= ( const DenseTensor & other)
inline

Definition at line 1159 of file densemat.hpp.

◆ operator=() [2/3]

DenseTensor & mfem::DenseTensor::operator= ( DenseTensor && other)
inline

Definition at line 1170 of file densemat.hpp.

◆ operator=() [3/3]

DenseTensor & mfem::DenseTensor::operator= ( real_t c)

Sets the tensor elements equal to constant c.

Definition at line 4411 of file densemat.cpp.

◆ Read()

const real_t * mfem::DenseTensor::Read ( bool on_dev = true) const
inline

Shortcut for mfem::Read( GetMemory(), TotalSize(), on_dev).

Definition at line 1300 of file densemat.hpp.

◆ ReadWrite()

real_t * mfem::DenseTensor::ReadWrite ( bool on_dev = true)
inline

Shortcut for mfem::ReadWrite(GetMemory(), TotalSize(), on_dev).

Definition at line 1312 of file densemat.hpp.

◆ SetSize()

void mfem::DenseTensor::SetSize ( int i,
int j,
int k,
MemoryType mt_ = MemoryType::PRESERVE )
inline

Definition at line 1192 of file densemat.hpp.

◆ SizeI()

int mfem::DenseTensor::SizeI ( ) const
inline

Definition at line 1186 of file densemat.hpp.

◆ SizeJ()

int mfem::DenseTensor::SizeJ ( ) const
inline

Definition at line 1187 of file densemat.hpp.

◆ SizeK()

int mfem::DenseTensor::SizeK ( ) const
inline

Definition at line 1188 of file densemat.hpp.

◆ Swap()

void mfem::DenseTensor::Swap ( DenseTensor & t)
inline

Definition at line 1317 of file densemat.hpp.

◆ TotalSize()

int mfem::DenseTensor::TotalSize ( ) const
inline

Definition at line 1190 of file densemat.hpp.

◆ UseExternalData()

void mfem::DenseTensor::UseExternalData ( real_t * ext_data,
int i,
int j,
int k )
inline

Definition at line 1203 of file densemat.hpp.

◆ Write()

real_t * mfem::DenseTensor::Write ( bool on_dev = true)
inline

Shortcut for mfem::Write(GetMemory(), TotalSize(), on_dev).

Definition at line 1306 of file densemat.hpp.


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