Manicore
Library to implement schemes on n-dimensionnal manifolds.
Namespaces | Classes | Typedefs | Functions | Variables
Manicore Namespace Reference

Namespaces

 Dimension
 
 Geometry
 

Classes

class  MaxwellProblem
 2 dimensional Maxwell equation on a manifold without boundary More...
 
struct  MaxwellVector
 Construct a convenient wrapper around a vector of global unknowns to manipulate individual components. More...
 
struct  ParametrizedMap
 Used for the parametrization of the mesh elements. More...
 
struct  ParametrizedDerivedMap
 First order differentials of the parametrizations. More...
 
struct  ParametrizedMetricMap
 Used to specify the ambient metric. More...
 
class  ExteriorBasis
 Class to handle the exterior algebra basis. More...
 
class  ComplBasis
 Return a mapping from the basis of l-forms in dimension d to the basis of (d-l)-forms. More...
 
struct  Compute_pullback
 Generic pullback computation. More...
 
struct  Compute_pullback< 0, d1, d2 >
 
struct  Compute_pullback< 1, d1, d2 >
 
struct  Compute_pullback< d, d, d >
 
struct  Compute_pullback< 1, 1, 1 >
 
struct  Compute_pullback< 2, 2, 3 >
 
struct  Compute_pullback< 2, 3, 2 >
 
struct  Compute_pullback< 2, 3, 3 >
 
struct  Compute_ExtGram
 Wrapper for the \(L^2\) product on the exterior algebra. More...
 
struct  Monomial_powers
 Generate a basis of monomial powers of degree r. More...
 
class  Koszul_exterior
 Koszul operator on the exterior algebra. More...
 
class  Diff_exterior
 Diff operator on the exterior algebra. More...
 
struct  Koszul_homogeneous_mat
 Generate the matrices for the Koszul operator on homogeneous monomial. More...
 
struct  Diff_homogeneous_mat
 Generate the matrices for the Differential operator on homogeneous monomial. More...
 
struct  Koszul_full
 Koszul operator from \(\mathcal{P}_r\Lambda^l(\mathbb{R}^d)\) to \(\mathcal{P}_{r+1}\Lambda^{l-1}(\mathbb{R}^d)\). More...
 
struct  Diff_full
 Differential operator from \(\mathcal{P}_r\Lambda^l(\mathbb{R}^d)\) to \(\mathcal{P}_{r-1}\Lambda^{l+1}(\mathbb{R}^d)\). More...
 
struct  Initialize_exterior_module
 Initialize every class related to the polynomial degree r. More...
 
class  DDR_Spaces
 Implement the discrete operators of DDR-PEC. More...
 
class  PEC
 Implement the discrete spaces of DDR-PEC. More...
 
class  Exporter
 Evaluate vector of discrete unknowns and store them in files. More...
 
struct  dCell_traces< dimension, 1 >
 Specialization for edges. More...
 
class  Maps_loader
 Class to load a shared library. More...
 
class  dCell_graph
 Manage topological relations between cells. More...
 
class  dCell_map
 Manage the geometry of a cell. More...
 
class  dCell_map< dimension, 0 >
 Specialization for the vertices. More...
 
class  DOFSpace
 Convert between local and global data. More...
 
class  Mesh_builder
 Build the internal representation of the mesh. More...
 
class  Mesh
 Main data structure for the mesh. More...
 
class  LegendreGauss
 Compute the number of node, their location and the associated weight for a given degree of exactness. More...
 
class  QuadRuleTriangle
 Wrapper for dunavant quadrature rules. More...
 
struct  QuadratureNode
 Description of one node and one weight from a quadrature rule. More...
 

Typedefs

template<size_t d>
using Simplex = std::array< Eigen::Vector< double, d >, d+1 >
 Array of d+1 points of \(\mathbb{R}^d\). More...
 
template<size_t d>
using QuadratureRule = std::vector< QuadratureNode< d > >
 Vector of locations and weights. More...
 

Functions

template<size_t dimension, size_t d>
ParametrizedMap< dimension, d > * DefaultMapping (size_t id)
 Do nothing mapping (always return null) More...
 
template<size_t dimension, size_t d>
ParametrizedDerivedMap< dimension, d > * DefaultDerivedMapping (size_t id)
 Do nothing mapping (always return null) More...
 
template<typename V , typename Derived >
double Compute_partial_det (const V &a1, const V &a2, const Eigen::MatrixBase< Derived > &A)
 Generic determinant computation. More...
 
static std::pair< std::vector< int >, std::vector< int > > distributeLoad (size_t nb_elements, unsigned nb_threads)
 Function to distribute elements (considered as jobs) over threads. It returns a pair of vectors indicating the start and end element of each thread. More...
 
static void parallel_for (unsigned nb_elements, std::function< void(size_t start, size_t end)> functor, bool use_threads=true)
 Generic function to execute threaded processes. More...
 
template<typename FType >
Eigen::SparseMatrix< double > parallel_assembly (size_t nb_elements, std::pair< size_t, size_t > systemSize, FType localAssembly, bool use_threads=true)
 Function to assemble a global sparse matrix from a procedure that compute local contributions. More...
 
template<size_t dimension, size_t d>
 requires (d > 0 &&d<=dimension) struct dCell_mass
 Compute the mass matrices of a d-cell. More...
 
template<typename CellType >
 requires (CellType::cell_dim==1) QuadratureRule< CellType
 Generate a quadrature rule for the cell f. More...
 

Variables

constexpr int QuadratureMaxDegree [] = {21*2,20}
 Maximum degree of quadrature implemented for each dimension (start with dimension 1) More...
 

Typedef Documentation

◆ Simplex

template<size_t d>
using Manicore::Simplex = typedef std::array<Eigen::Vector<double,d>,d+1>

Array of d+1 points of \(\mathbb{R}^d\).

Function Documentation

◆ DefaultDerivedMapping()

template<size_t dimension, size_t d>
ParametrizedDerivedMap<dimension,d>* Manicore::DefaultDerivedMapping ( size_t  id)

Do nothing mapping (always return null)

◆ DefaultMapping()

template<size_t dimension, size_t d>
ParametrizedMap<dimension,d>* Manicore::DefaultMapping ( size_t  id)

Do nothing mapping (always return null)

◆ distributeLoad()

static std::pair<std::vector<int>, std::vector<int> > Manicore::distributeLoad ( size_t  nb_elements,
unsigned  nb_threads 
)
static

Function to distribute elements (considered as jobs) over threads. It returns a pair of vectors indicating the start and end element of each thread.

◆ parallel_assembly()

template<typename FType >
Eigen::SparseMatrix<double> Manicore::parallel_assembly ( size_t  nb_elements,
std::pair< size_t, size_t >  systemSize,
FType  localAssembly,
bool  use_threads = true 
)

Function to assemble a global sparse matrix from a procedure that compute local contributions.

Parameters
nb_elementsNumber of elements over which the threading will be done
systemSizeNumber of rows and columns of the matrix to assemble
localAssemblyFunctor performing the local assembly in a single cell
use_threadsDetermine if threads must be used or not

◆ parallel_for()

static void Manicore::parallel_for ( unsigned  nb_elements,
std::function< void(size_t start, size_t end)>  functor,
bool  use_threads = true 
)
inlinestatic

Generic function to execute threaded processes.