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 VSXGradvsxGrad () const
 Returns the space VSXGrad.
 
const XHessxHess () const
 Returns the space XHess.
 
const SystemMatrixTypesystemMatrix () const
 Returns the linear system matrix.
 
SystemMatrixTypesystemMatrix ()
 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 SystemMatrixTypebdryMatrix () 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 XDivDivxDivDiv () const
 Returns the space XDivDiv.
 
const GlobalDOFSpace polykm2Th () const
 Returns the space \(\mathbb{P}^{k-2}(\mathcal{T}_h)\).
 
const SystemMatrixTypesystemMatrix () const
 Returns the linear system matrix.
 
SystemMatrixTypesystemMatrix ()
 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 SystemMatrixTypescMatrix () 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 XDivDivxDivDiv () const
 Returns the space XDivDiv.
 
const SystemMatrixTypesystemMatrix () const
 Returns the linear system matrix.
 
SystemMatrixTypesystemMatrix ()
 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: