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::ReissnerMindlin Struct Reference

Assemble a RM problem. More...

#include <bgg-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
 
typedef std::function< Eigen::Vector2d(const RMParameters &, const Eigen::Vector2d &)> GradientDisplacementType
 
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 DDRCore &ddrcore_plus, const SerendipityProblem &sp, const SerendipityProblem &sp_plus, const RMParameters &para, 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, const GradientDisplacementType &grad_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.
 
const Eigen::VectorXi & DOFtoUKN () const
 Returns the map from global DOFs to system unknowns.
 
const BoundaryConditions & BC_u () const
 Returns the boundary conditions for u.
 
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 RMParameters & para () const
 Returns the parameters.
 
const VSXGrad & vsxGrad () const
 Returns the space VSXGrad.
 
const VSXCurl & vsxCurl () const
 Returns the space VSXCurl.
 
const XHessFull & 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.
 
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)
 
 ReissnerMindlin (const DDRCore &ddrcore, const RMParameters &para, 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)
 

Detailed Description

Assemble a RM problem.


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