HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
HArDCore2D::KirchhoffLove Struct Reference

Assemble a RM problem. More...

#include <bgg-klplate.hpp>

Public Types

typedef Eigen::SparseMatrix< double > SystemMatrixType
 
typedef std::function< double(const Eigen::Vector2d &)> ForcingTermType
 
typedef std::function< double(const Eigen::Vector2d &)> SolutionDisplacementType
 
typedef std::function< Eigen::Vector2d(const Eigen::Vector2d &)> GradientDisplacementType
 
typedef Eigen::SparseMatrix< double > SystemMatrixType
 
typedef std::function< double(const Eigen::Vector2d &)> ForcingTermType
 
typedef std::function< double(const Eigen::Vector2d &)> DeflectionType
 
typedef std::function< Eigen::Vector2d(const Eigen::Vector2d &)> GradientDeflectionType
 
typedef std::function< Eigen::Matrix2d(const Eigen::Vector2d &)> MomentTensorType
 
typedef std::function< double(const Eigen::Vector2d &, const Edge &)> MomentTensorEdgeDerivativeType
 
typedef XDivDiv::ConstitutiveLawType ConstitutiveLawType
 
typedef Eigen::SparseMatrix< double > SystemMatrixType
 
typedef std::function< double(const Eigen::Vector2d &)> ForcingTermType
 
typedef std::function< double(const Eigen::Vector2d &)> DeflectionType
 
typedef std::function< Eigen::Matrix2d(const Eigen::Vector2d &)> MomentTensorType
 
typedef std::function< double(const Eigen::Vector2d &, const Edge &)> MomentTensorEdgeDerivativeType
 

Public Member Functions

 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 assembleLinearSystem (const ForcingTermType &f, const SolutionDisplacementType &u, const GradientDisplacementType &grad_u, size_t iT_dirac)
 Assemble the global system

 
size_t dimensionSpace () const
 Returns the dimension of the rotation + displacement space (with BC)
 
size_t nb_bdryDOFs () const
 Returns the nb of DOFs for BC.
 
size_t sizeSystem () const
 Returns the size of the system without BC.
 
const std::vector< std::pair< size_t, size_t > > & locUKN () const
 Returns the location of the unknowns among the DOFs.
 
std::vector< size_t > 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 VSXGrad & vsxGrad () const
 Returns the space VSXGrad.
 
const XHess & xHess () const
 Returns the space XHess.
 
const SystemMatrixType & systemMatrix () const
 Returns the linear system matrix.
 
SystemMatrixType & systemMatrix ()
 Returns the linear system matrix.
 
const Eigen::VectorXd & systemVector () const
 Returns the linear system right-hand side vector.
 
Eigen::VectorXd & systemVector ()
 Returns the linear system right-hand side vector.
 
const SystemMatrixType & bdryMatrix () const
 Returns the Matrix for BC.
 
const Eigen::VectorXd & bdryValues () const
 Returns the boundary values.
 
const double & stabilizationParameter () const
 Returns the stabilization parameter.
 
double & stabilizationParameter ()
 Returns the stabilization parameter.
 
KLNorms computeNorms (const Eigen::VectorXd &v) const
 Compute the discrete norms: displacement,and energy.
 
template<typename outValue , typename Fct >
std::function< outValue(const Eigen::Vector2d &)> 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)
 
 KirchhoffLove (const PlatesCore &platescore, const ConstitutiveLawType &law, bool use_threads, std::ostream &output=std::cout)
 Constructor.
 
size_t dimensionSpace () const
 Returns the dimension of the moment + deflection space.
 
size_t nbSCDOFs () const
 Returns the number of statically condensed DOFs (here, the cell moments DOFs)
 
size_t sizeSystem () const
 Returns the size of the statically condensed system.
 
const XDivDiv & xDivDiv () const
 Returns the space XDivDiv.
 
const GlobalDOFSpace polykm2Th () const
 Returns the space \(\mathbb{P}^{k-2}(\mathcal{T}_h)\).
 
const SystemMatrixType & systemMatrix () const
 Returns the linear system matrix.
 
SystemMatrixType & systemMatrix ()
 Returns the linear system matrix.
 
const Eigen::VectorXd & systemVector () const
 Returns the linear system right-hand side vector.
 
Eigen::VectorXd & systemVector ()
 Returns the linear system right-hand side vector.
 
const SystemMatrixType & scMatrix () const
 Returns the static condensation recovery operator.
 
Eigen::VectorXd & scVector ()
 Returns the static condensation rhs.
 
const double & stabilizationParameter () const
 Returns the stabilization parameter.
 
double & stabilizationParameter ()
 Returns the stabilization parameter.
 
void assembleLinearSystem (const ForcingTermType &f, const DeflectionType &u, const GradientDeflectionType &grad_u)
 Assemble the global system.
 
Eigen::VectorXd interpolateDeflection (const DeflectionType &u, int deg_quad=-1) const
 Interpolate deflection.
 
double computeNorm (const Eigen::VectorXd &v) const
 Compute the discrete norm.
 
 KirchhoffLove (const PlatesCore &platescore, bool use_threads, std::ostream &output=std::cout)
 Constructor.
 
size_t dimensionSpace () const
 Returns the dimension of the rotation + displacement space (with BC)
 
const XDivDiv & xDivDiv () const
 Returns the space XDivDiv.
 
const SystemMatrixType & systemMatrix () const
 Returns the linear system matrix.
 
SystemMatrixType & systemMatrix ()
 Returns the linear system matrix.
 
const Eigen::VectorXd & systemVector () const
 Returns the linear system right-hand side vector.
 
Eigen::VectorXd & systemVector ()
 Returns the linear system right-hand side vector.
 
const double & stabilizationParameter () const
 Returns the stabilization parameter.
 
double & stabilizationParameter ()
 Returns the stabilization parameter.
 

Detailed Description

Assemble a RM problem.

Assemble a Kirchhoff-Love plate problem.

Member Typedef Documentation

◆ DeflectionType

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

◆ ForcingTermType

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

◆ MomentTensorEdgeDerivativeType

typedef std::function<double(const Eigen::Vector2d &, const Edge &)> HArDCore2D::KirchhoffLove::MomentTensorEdgeDerivativeType

◆ MomentTensorType

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

◆ SystemMatrixType

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

Constructor & Destructor Documentation

◆ KirchhoffLove()

KirchhoffLove::KirchhoffLove ( const PlatesCore &  platescore,
bool  use_threads,
std::ostream &  output = std::cout 
)

Constructor.

Parameters
platescoreCore for the DDR space sequence
use_threadsTrue for parallel execution, false for sequential execution
outputOutput stream to print status messages

Member Function Documentation

◆ dimensionSpace()

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

Returns the dimension of the rotation + displacement space (with 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.

◆ xDivDiv()

const XDivDiv & HArDCore2D::KirchhoffLove::xDivDiv ( ) const
inline

Returns the space XDivDiv.


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