HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
Loading...
Searching...
No Matches
Classes | Typedefs | Functions | Variables
BGG_rmplate
Collaboration diagram for BGG_rmplate:

Classes

struct  HArDCore2D::KLNorms
 Structure to store component norms (displacement total energy) More...
 
struct  HArDCore2D::KirchhoffLove
 Assemble a RM problem. More...
 

Typedefs

typedef Eigen::SparseMatrix< double > HArDCore2D::KirchhoffLove::SystemMatrixType
 
typedef std::function< double(const Eigen::Vector2d &)> HArDCore2D::KirchhoffLove::ForcingTermType
 
typedef std::function< double(const Eigen::Vector2d &)> HArDCore2D::KirchhoffLove::SolutionDisplacementType
 
typedef std::function< Eigen::Vector2d(const Eigen::Vector2d &)> HArDCore2D::KirchhoffLove::GradientDisplacementType
 

Functions

 HArDCore2D::KLNorms::KLNorms (double norm_displacement)
 Constructor.
 
 HArDCore2D::KirchhoffLove::KirchhoffLove (const DDRCore &ddrcore, const DDRCore &ddrcore_plus, const SerendipityProblem &sp, const SerendipityProblem &sp_plus, const BoundaryConditions &BC_u, bool use_threads, std::ostream &output=std::cout)
 Constructor.
 
void HArDCore2D::KirchhoffLove::assembleLinearSystem (const ForcingTermType &f, const SolutionDisplacementType &u, const GradientDisplacementType &grad_u)
 Assemble the global system

 
size_t HArDCore2D::KirchhoffLove::dimensionSpace () const
 Returns the dimension of the rotation + displacement space (with BC)
 
size_t HArDCore2D::KirchhoffLove::nb_bdryDOFs () const
 Returns the nb of DOFs for BC.
 
size_t HArDCore2D::KirchhoffLove::sizeSystem () const
 Returns the size of the system without BC.
 
const std::vector< std::pair< size_t, size_t > > & HArDCore2D::KirchhoffLove::locUKN () const
 Returns the location of the unknowns among the DOFs.
 
std::vector< size_t > HArDCore2D::KirchhoffLove::globalDOFIndices (const Cell &T) const
 Create the vector of DOF indices for cell T, which combines the DOFs for the spaces VSXgrad and Xhess.
 
const VSXGradHArDCore2D::KirchhoffLove::vsxGrad () const
 Returns the space VSXGrad.
 
const XHessHArDCore2D::KirchhoffLove::xHess () const
 Returns the space XHess.
 
const SystemMatrixTypeHArDCore2D::KirchhoffLove::systemMatrix () const
 Returns the linear system matrix.
 
SystemMatrixTypeHArDCore2D::KirchhoffLove::systemMatrix ()
 Returns the linear system matrix.
 
const Eigen::VectorXd & HArDCore2D::KirchhoffLove::systemVector () const
 Returns the linear system right-hand side vector.
 
Eigen::VectorXd & HArDCore2D::KirchhoffLove::systemVector ()
 Returns the linear system right-hand side vector.
 
const SystemMatrixTypeHArDCore2D::KirchhoffLove::bdryMatrix () const
 Returns the Matrix for BC.
 
const Eigen::VectorXd & HArDCore2D::KirchhoffLove::bdryValues () const
 Returns the boundary values.
 
const double & HArDCore2D::KirchhoffLove::stabilizationParameter () const
 Returns the stabilization parameter.
 
double & HArDCore2D::KirchhoffLove::stabilizationParameter ()
 Returns the stabilization parameter.
 
KLNorms HArDCore2D::KirchhoffLove::computeNorms (const Eigen::VectorXd &v) const
 Compute the discrete norms: displacement,and energy.
 
template<typename outValue , typename Fct >
std::function< outValue(const Eigen::Vector2d &)> HArDCore2D::KirchhoffLove::contractPara (const Fct &F) const
 Takes a function dependent on KLParameter and a position x, and returns a function depending only on x (using the parameters of this class)
 

Variables

double HArDCore2D::KLNorms::displacement
 Norm of displacement.
 
double HArDCore2D::KLNorms::energy
 Total energy.
 
static const double HArDCore2D::PI = boost::math::constants::pi<double>()
 
static KirchhoffLove::SolutionDisplacementType HArDCore2D::constant_u
 
static KirchhoffLove::GradientDisplacementType HArDCore2D::constant_grad_u
 
static KirchhoffLove::ForcingTermType HArDCore2D::constant_f
 
static KirchhoffLove::SolutionDisplacementType HArDCore2D::polynomial_u
 
static KirchhoffLove::GradientDisplacementType HArDCore2D::polynomial_grad_u
 
static KirchhoffLove::ForcingTermType HArDCore2D::polynomial_f
 

Detailed Description

Typedef Documentation

◆ ForcingTermType

typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::KirchhoffLove::ForcingTermType

◆ GradientDisplacementType

typedef std::function<Eigen::Vector2d(const Eigen::Vector2d&)> HArDCore2D::KirchhoffLove::GradientDisplacementType

◆ SolutionDisplacementType

typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::KirchhoffLove::SolutionDisplacementType

◆ SystemMatrixType

typedef Eigen::SparseMatrix<double> HArDCore2D::KirchhoffLove::SystemMatrixType

Function Documentation

◆ assembleLinearSystem()

void KirchhoffLove::assembleLinearSystem ( const ForcingTermType f,
const SolutionDisplacementType u,
const GradientDisplacementType grad_u 
)

Assemble the global system

Parameters
fForcing term
uBoundary value
grad_uBoundary value

◆ bdryMatrix()

const SystemMatrixType & HArDCore2D::KirchhoffLove::bdryMatrix ( ) const
inline

Returns the Matrix for BC.

◆ bdryValues()

const Eigen::VectorXd & HArDCore2D::KirchhoffLove::bdryValues ( ) const
inline

Returns the boundary values.

◆ computeNorms()

KLNorms KirchhoffLove::computeNorms ( const Eigen::VectorXd &  v) const

Compute the discrete norms: displacement,and energy.

Parameters
vThe vector

◆ contractPara()

template<typename outValue , typename Fct >
std::function< outValue(const Eigen::Vector2d &)> HArDCore2D::KirchhoffLove::contractPara ( const Fct &  F) const
inline

Takes a function dependent on KLParameter and a position x, and returns a function depending only on x (using the parameters of this class)

◆ dimensionSpace()

size_t HArDCore2D::KirchhoffLove::dimensionSpace ( ) const
inline

Returns the dimension of the rotation + displacement space (with BC)

◆ globalDOFIndices()

std::vector< size_t > HArDCore2D::KirchhoffLove::globalDOFIndices ( const Cell &  T) const
inline

Create the vector of DOF indices for cell T, which combines the DOFs for the spaces VSXgrad and Xhess.

◆ KirchhoffLove()

KirchhoffLove::KirchhoffLove ( const DDRCore ddrcore,
const DDRCore ddrcore_plus,
const SerendipityProblem sp,
const SerendipityProblem sp_plus,
const BoundaryConditions BC_u,
bool  use_threads,
std::ostream &  output = std::cout 
)

Constructor.

Parameters
ddrcoreCore for the DDR space sequence
ddrcore_plusCore for the DDR space sequence of degree +1
sp_plusSerendipity problem of degree +1
BC_uBoundary conditions for displacement
use_threadsTrue for parallel execution, false for sequential execution
outputOutput stream to print status messages

◆ KLNorms()

HArDCore2D::KLNorms::KLNorms ( double  norm_displacement)
inline

Constructor.

◆ locUKN()

const std::vector< std::pair< size_t, size_t > > & HArDCore2D::KirchhoffLove::locUKN ( ) const
inline

Returns the location of the unknowns among the DOFs.

◆ nb_bdryDOFs()

size_t HArDCore2D::KirchhoffLove::nb_bdryDOFs ( ) const
inline

Returns the nb of DOFs for BC.

◆ sizeSystem()

size_t HArDCore2D::KirchhoffLove::sizeSystem ( ) const
inline

Returns the size of the system without BC.

◆ stabilizationParameter() [1/2]

double & HArDCore2D::KirchhoffLove::stabilizationParameter ( )
inline

Returns the stabilization parameter.

◆ stabilizationParameter() [2/2]

const double & HArDCore2D::KirchhoffLove::stabilizationParameter ( ) const
inline

Returns the stabilization parameter.

◆ systemMatrix() [1/2]

SystemMatrixType & HArDCore2D::KirchhoffLove::systemMatrix ( )
inline

Returns the linear system matrix.

◆ systemMatrix() [2/2]

const SystemMatrixType & HArDCore2D::KirchhoffLove::systemMatrix ( ) const
inline

Returns the linear system matrix.

◆ systemVector() [1/2]

Eigen::VectorXd & HArDCore2D::KirchhoffLove::systemVector ( )
inline

Returns the linear system right-hand side vector.

◆ systemVector() [2/2]

const Eigen::VectorXd & HArDCore2D::KirchhoffLove::systemVector ( ) const
inline

Returns the linear system right-hand side vector.

◆ vsxGrad()

const VSXGrad & HArDCore2D::KirchhoffLove::vsxGrad ( ) const
inline

Returns the space VSXGrad.

◆ xHess()

const XHess & HArDCore2D::KirchhoffLove::xHess ( ) const
inline

Returns the space XHess.

Variable Documentation

◆ constant_f

KirchhoffLove::ForcingTermType HArDCore2D::constant_f
static
Initial value:
= [](const VectorRd & x) -> double {
return 0.;
}
Create grid points x
Definition generate_cartesian_mesh.m:22
Eigen::Vector2d VectorRd
Definition basis.hpp:55

◆ constant_grad_u

KirchhoffLove::GradientDisplacementType HArDCore2D::constant_grad_u
static
Initial value:
= [](const VectorRd & ) -> VectorRd{
return VectorRd::Zero();
}

◆ constant_u

KirchhoffLove::SolutionDisplacementType HArDCore2D::constant_u
static
Initial value:
= [](const VectorRd & x) -> double {
return 1.;
}

◆ displacement

double HArDCore2D::KLNorms::displacement

Norm of displacement.

◆ energy

double HArDCore2D::KLNorms::energy

Total energy.

◆ PI

const double HArDCore2D::PI = boost::math::constants::pi<double>()
static

◆ polynomial_f

KirchhoffLove::ForcingTermType HArDCore2D::polynomial_f
static
Initial value:
= [](const VectorRd & x) -> double {
return 120. * (x(0) + x(1));
}

◆ polynomial_grad_u

KirchhoffLove::GradientDisplacementType HArDCore2D::polynomial_grad_u
static
Initial value:
= [](const VectorRd & x) -> VectorRd {
VectorRd grad;
grad(0) = 5.0 * pow(x(0), 4);
grad(1) = 5.0 * pow(x(1), 4);
return grad;
}

◆ polynomial_u

KirchhoffLove::SolutionDisplacementType HArDCore2D::polynomial_u
static
Initial value:
= [](const VectorRd & x) -> double {
return pow(x(0), 5) + pow(x(1), 5);
}