HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
|
Assemble a Kirchhoff-Love plate problem. More...
#include <ddr-klplate.hpp>
Public Types | |
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 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. | |
Assemble a Kirchhoff-Love plate problem.
typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::KirchhoffLove::DeflectionType |
typedef std::function<double(const Eigen::Vector2d &)> HArDCore2D::KirchhoffLove::ForcingTermType |
typedef std::function<double(const Eigen::Vector2d &, const Edge &)> HArDCore2D::KirchhoffLove::MomentTensorEdgeDerivativeType |
typedef std::function<Eigen::Matrix2d(const Eigen::Vector2d &)> HArDCore2D::KirchhoffLove::MomentTensorType |
typedef Eigen::SparseMatrix<double> HArDCore2D::KirchhoffLove::SystemMatrixType |
KirchhoffLove::KirchhoffLove | ( | const PlatesCore & | platescore, |
bool | use_threads, | ||
std::ostream & | output = std::cout |
||
) |
Constructor.
platescore | Core for the DDR space sequence |
use_threads | True for parallel execution, false for sequential execution |
output | Output stream to print status messages |
|
inline |
Returns the dimension of the rotation + displacement space (with BC)
|
inline |
Returns the stabilization parameter.
|
inline |
Returns the stabilization parameter.
|
inline |
Returns the linear system matrix.
|
inline |
Returns the linear system matrix.
|
inline |
Returns the linear system right-hand side vector.
|
inline |
Returns the linear system right-hand side vector.