HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
|
Assemble a RM problem. More...
#include <ddr-rmplate.hpp>
Public Types | |
typedef Eigen::SparseMatrix< double > | SystemMatrixType |
typedef std::function< double(const RMParameters &, const Eigen::Vector2d &)> | ForcingTermType |
typedef std::function< Eigen::Vector2d(const RMParameters &, const Eigen::Vector2d &)> | SolutionRotationType |
typedef std::function< Eigen::Matrix2d(const RMParameters &, const Eigen::Vector2d &)> | GradientRotationType |
typedef std::function< double(const RMParameters &, const Eigen::Vector2d &)> | SolutionDisplacementType |
Public Member Functions | |
ReissnerMindlin (const DDRCore &ddrcore, const RMParameters ¶, const BoundaryConditions &BC_theta, const BoundaryConditions &BC_u, bool use_threads, std::ostream &output=std::cout) | |
Constructor. | |
void | assembleLinearSystem (const ForcingTermType &f, const SolutionRotationType &theta, const GradientRotationType &grad_theta, const SolutionDisplacementType &u) |
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 EXcurl and Xgrad. | |
const RMParameters & | para () const |
Returns the parameters. | |
const EXCurl & | exCurl () const |
Returns the space EXCurl. | |
const XGrad & | xGrad () const |
Returns the space XGrad. | |
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. | |
RMNorms | computeNorms (const Eigen::VectorXd &v) const |
Compute the discrete norms: rotation, displacement, Kirchoff term, and complete energy. | |
template<typename outValue , typename Fct > | |
std::function< outValue(const Eigen::Vector2d &)> | contractPara (const Fct &F) const |
Takes a function dependent on RMParameter and a position x, and returns a function depending only on x (using the parameters of this class) | |
Assemble a RM problem.