#include <internalconstraintdefinition.hpp>
Public Types | |
typedef size_t | count_type |
typedef unsigned int | index_type |
typedef double | real_type |
typedef Eigen::SparseMatrix < double, Eigen::ColMajor > | TSparseMatrix |
typedef Eigen::DynamicSparseMatrix < double, Eigen::ColMajor > | TSparseMatrixRandom |
typedef Eigen::SparseVector < double > | TSparseVector |
typedef Eigen::VectorXd | TVector |
typedef Eigen::Matrix< int, Eigen::Dynamic, 1 > | TVectorUint |
typedef Eigen::Map< TVector > | TVectorView |
typedef std::pair< index_type, real_type > | TypeCoeffPair |
typedef std::list< TypeCoeffPair > | TypeCoeffPairList |
typedef std::vector < TypeCoeffPairList > | TypeCoeffPairListVector |
typedef std::vector< real_type > | TypeRealVector |
typedef unsigned int | uint |
typedef unsigned short | ushort |
Public Member Functions | |
void | addConstraint (const TypeCoeffPairList &thecoeffs, const real_type &therhs) |
adds a single constraint equation given by a list of pairs(coefficient,global dof id) and the right hand side | |
void | addRestraint (const index_type &thedof, const real_type &value=0) |
restraints the DOF given by its global idx to be zero | |
void | addRestraintMechanicalDof (const index_type &part_index, const index_type &thenode, const index_type &localdof, const real_type &value=0) |
restraints the DOF given by its node idx (and part) and its nodal idx to be zero | |
void | clear () |
deletes all constraint definitions | |
void | createConstraintMatrix (const InternalConstraintDefinition &additional_constraints, TSparseMatrix &conre_matrix, TSparseVector &offset_slave_dofs) const |
const TypeCoeffPairListVector & | getConstraintCoeffs () const |
a getter for constraint_coeffs | |
const TypeRealVector & | getConstraintRhs () const |
a getter for constraint_rhs | |
InternalConstraintDefinition (const DofHandler &thedofs) | |
Protected Member Functions | |
TypeCoeffPairListVector & | setConstraintCoeffs () |
a setter for constraint_coeffs | |
TypeRealVector & | setConstraintRhs () |
a setter for constraint_rhs | |
Protected Attributes | |
TypeCoeffPairListVector | constraint_coeffs |
TypeRealVector | constraint_rhs |
the right hand sides of the constraint equations | |
const DofHandler & | dofhandler |
a reference to the refering dofhandler |
void sfem::mesh::InternalConstraintDefinition::createConstraintMatrix | ( | const InternalConstraintDefinition & | additional_constraints, | |
TSparseMatrix & | conre_matrix, | |||
TSparseVector & | offset_slave_dofs | |||
) | const |
creates the constraint relations in algebraic form, i.e. u_global = D*u_master+b The number of rows corresponds to the number of available (global) dofs, the number of columns is the number of active (master) dofs.
additional_constraints | may be empty. It may contain additional consraint definitions to be added to conre-relations | |
conre_matrix | will contain the matrix D | |
offset_slave_dofs | will contain teh vector b |
TypeCoeffPairListVector sfem::mesh::InternalConstraintDefinition::constraint_coeffs [protected] |
the coefficients of the constraint matrix (each row is one constraint; indices refer to the global DOF id) one reads: sum_i coefficient_i*dof_i = rhs