HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
laddrcore.hpp
Go to the documentation of this file.
1 #ifndef LADDRCORE_HPP
2 #define LADDRCORE_HPP
3 
4 #include <ddrcore.hpp>
5 #include <liealgebra.hpp>
6 
7 namespace HArDCore3D
8 {
9 
15  //------------------------------------------------------------------------------
16 
18  class LADDRCore : public DDRCore
19  {
20  public:
21 
23  LADDRCore(const LieAlgebra & lie_algebra, const Mesh & mesh, size_t K, bool use_threads = true, std::ostream & output = std::cout);
24 
26  inline const DDRCore::Poly3BasisCellType & P2k3(size_t iT) const
27  {
28  // Make sure that the basis has been created
29  assert( m_P2k3_cell_basis[iT] );
30  return *m_P2k3_cell_basis[iT].get();
31  }
32 
34  inline const LieAlgebra & lieAlg() const
35  {
36  return m_lie_algebra;
37  }
38 
39  private:
41  Poly3BasisCellType _construct_P2k3_cell_bases(size_t iT);
42 
43  // Lie algebra
44  const LieAlgebra & m_lie_algebra;
45 
46  // Output stream
47  std::ostream & m_output;
48 
49  // Cell bases
50  std::vector<std::unique_ptr<DDRCore::Poly3BasisCellType>> m_P2k3_cell_basis;
51  };
52 
53 } // end of namespace HArDCore3D
54 
55 #endif // DDRCORE_HPP
Construct all polynomial spaces for the DDR sequence.
Definition: ddrcore.hpp:62
Construct the spaces for the LADDR sequence.
Definition: laddrcore.hpp:19
Lie algebra class: mass matrix, structure constants and Lie bracket.
Definition: liealgebra.hpp:17
Vector family obtained by tensorization of a scalar family.
Definition: basis.hpp:609
Class to describe a mesh.
Definition: MeshND.hpp:17
const Mesh & mesh() const
Return a const reference to the mesh.
Definition: ddrcore.hpp:134
TensorizedVectorFamily< PolyBasisCellType, 3 > Poly3BasisCellType
Definition: ddrcore.hpp:66
bool use_threads
Definition: HHO_DiffAdvecReac.hpp:47
size_t K
Definition: HHO_DiffAdvecReac.hpp:46
const LieAlgebra & lieAlg() const
Return the Lie algebra.
Definition: laddrcore.hpp:34
const DDRCore::Poly3BasisCellType & P2k3(size_t iT) const
Return cell bases for element iT.
Definition: laddrcore.hpp:26
LADDRCore(const LieAlgebra &lie_algebra, const Mesh &mesh, size_t K, bool use_threads=true, std::ostream &output=std::cout)
Constructor.
Definition: laddrcore.cpp:7
Definition: ddr-magnetostatics.hpp:40