SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
tensor_basis.hpp File Reference

Implementation of fast tensor evaluation functions. These do not contribute physics but are used to accelerate evaluations. More...

#include <algorithm>
#include <array>
#include <cmath>
#include <limits>
#include <memory>
#include <vector>
#include <utility>
#include "mfem/fem/fe/fe_h1.hpp"
#include "mfem/fem/fe/fe_l2.hpp"
#include "serif/utils/error/errors.hpp"
#include "serif/backend/mfem/discretization/reconstruction.hpp"
Include dependency graph for tensor_basis.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::discretization::backend::mfem::TensorWorkspace
 A workspace for tensor contractions to avoid repeated allocations and pack memory (TODO: does this actual pack memory in a useful manner when using mfem vectors? Probably something to look into). More...
 
class  serif::discretization::backend::mfem::TensorBasis
 A class that represents a tensor basis for a finite element. This class is used to evaluate the basis functions and their derivatives at a set of reference points. More...
 
struct  serif::discretization::backend::mfem::TensorBasis::Product
 A struct that represents a product of one-dimensional basis functions. More...
 
class  serif::discretization::backend::mfem::TensorBasisCache
 Share immutable tensor plans within one operator; copied rules are keyed by their contents. More...
 
struct  serif::discretization::backend::mfem::TensorBasisCache::Entry
 A struct that represents an entry in the TensorBasisCache. Each entry contains a non-owning pointer to a finite element, the reference operation, the number of copies, the points used to construct the TensorBasis, and a shared pointer to the TensorBasis itself. More...
 

Namespaces

namespace  serif
 
namespace  serif::discretization
 
namespace  serif::discretization::backend
 
namespace  serif::discretization::backend::mfem
 

Enumerations

enum class  serif::discretization::backend::mfem::ReferenceOperation { serif::discretization::backend::mfem::value , serif::discretization::backend::mfem::gradient , serif::discretization::backend::mfem::value_and_gradient }
 Options enum to control what is actually evaluated at the reference points. More...
 
enum class  serif::discretization::backend::mfem::ContractionMode { serif::discretization::backend::mfem::automatic , serif::discretization::backend::mfem::dense }
 Options enum to control how the tensor contractions are performed. More...
 

Detailed Description

Implementation of fast tensor evaluation functions. These do not contribute physics but are used to accelerate evaluations.

Author
Emily M. Boudreaux