xc
Public Member Functions | Friends | List of all members

PenaltyMFreedom_FE is a subclass of FE_Element which handles MFreedom_Constraints using the penalty method. More...

#include <PenaltyMFreedom_FE.h>

Inheritance diagram for XC::PenaltyMFreedom_FE:
XC::MFreedom_FE XC::MPBase_FE XC::MPSPBaseFE XC::FE_Element XC::TaggedObject

Public Member Functions

virtual int setID (void)
 Method to set the correMPonding index of the ID to value. More...
 
virtual const MatrixgetTangent (Integrator *theIntegrator)
 If the MP_Constraint is time-varying, from the MP_Constraint theMFreedom it obtains the current \(C_{cr}\) matrix; it then forms the \(C\) matrix and finally it sets the tangent matrix to be \(\alpha //! C^TC\). More...
 
virtual const VectorgetResidual (Integrator *theIntegrator)
 Returns the residual, a \(0\) Vector.
 
virtual const VectorgetTangForce (const Vector &x, double fact=1.0)
 CURRENTLY just returns the \(0\) residual. More...
 
virtual const VectorgetK_Force (const Vector &x, double fact=1.0)
 
virtual const VectorgetC_Force (const Vector &x, double fact=1.0)
 
virtual const VectorgetM_Force (const Vector &x, double fact=1.0)
 Returns the product of elements current mass matrix and a Vector whose values are obtained by taking the product of {fact} and those elements of the Vector accel associated with the FE_Elements equation numbers. More...
 
- Public Member Functions inherited from XC::FE_Element
virtual ~FE_Element (void)
 Destructor.
 
virtual const IDgetDOFtags (void) const
 Returns the tags of the associated DOF_Groups. More...
 
virtual const IDgetID (void) const
 Method to return the ID containing equation numbers. More...
 
void setAnalysisModel (AnalysisModel &theModel)
 Sets the link with the analysis model. More...
 
virtual void zeroTangent (void)
 Zeros the tangent matrix. More...
 
virtual void addKtToTang (double fact=1.0)
 Adds the product of fact times the element's tangent stiffness matrix to the tangent. More...
 
virtual void addKiToTang (double fact=1.0)
 Adds the product of fact times the element's initial stiffness matrix to the tangent. More...
 
virtual void addCtoTang (double fact=1.0)
 Adds the product of fact times the element's damping matrix to the tangent. More...
 
virtual void addMtoTang (double fact=1.0)
 Adds the product of fact times the element's mass matrix to the tangent. More...
 
virtual void zeroResidual (void)
 Zeros the residual vector. More...
 
virtual void addRtoResidual (double fact=1.0)
 Adds to the residual vector the product of the elements residual load vector and fact. More...
 
virtual void addRIncInertiaToResidual (double fact=1.0)
 Adds to the residual vector the product of the elements residual load vector with inertia forces included and fact. More...
 
virtual void addM_Force (const Vector &accel, double fact=1.0)
 Adds to the residual the product of elements current mass matrix and a Vector whose values are obtained by taking the product of {fact} and those elements of the Vector accel associated with the FE_Elements equation numbers. More...
 
virtual void addD_Force (const Vector &vel, double fact=1.0)
 Adds to the residual the product of elements current damping matrix and a Vector whose values are obtained by taking the product of {fact} and those elements of the Vector vel associated with the FE_Elements equation numbers. More...
 
virtual int updateElement (void)
 
virtual IntegratorgetLastIntegrator (void)
 Method which returns the last integrator supplied in a formTangent() or a formResidual() invocation. More...
 
virtual const VectorgetLastResponse (void)
 A method which invokes getLastResponse() on the Integrator object that was last passed as an argument to any of the routines. More...
 
ElementgetElement (void)
 Returns a pointer to the associated element.
 
virtual void Print (std::ostream &, int=0)
 Print stuff.
 
virtual void addResistingForceSensitivity (int gradNumber, double fact=1.0)
 
virtual void addM_ForceSensitivity (int gradNumber, const Vector &vect, double fact=1.0)
 
virtual void addD_ForceSensitivity (int gradNumber, const Vector &vect, double fact=1.0)
 
virtual int commitSensitivity (int gradNum, int numGrads)
 
- Public Member Functions inherited from XC::TaggedObject
 TaggedObject (int tag, CommandEntity *owr=nullptr)
 Constructor. More...
 
virtual TaggedObjectgetCopy (void) const
 Virtual constructor.
 
void assignTag (int newTag)
 Set tag (to be called from Python interface).
 
int getTag (void) const
 Returns the tag associated with the object.
 

Friends

class AnalysisModel
 

Additional Inherited Members

- Protected Member Functions inherited from XC::MFreedom_FE
 MFreedom_FE (int tag, int numDOF_Group, int ndof, MFreedom_Constraint &theMFreedom, const double &alpha=1.0)
 Constructor.
 
int determineConstrainedDOFsIDs (const int &)
 determine the IDs in myID for those DOFs marked as constrained DOFs, this is obtained from the DOF_Group associated with the constrained node. More...
 
int determineRetainedDOFsIDs (const int &)
 determine determine the IDs for the retained dof's
 
DOF_GroupdetermineRetainedNodeDofGrpPtr (void)
 get the DOF_Group attached to the retained node.
 
- Protected Member Functions inherited from XC::MPBase_FE
 MPBase_FE (int tag, int numDOF_Group, int ndof, const double &alpha=1.0)
 Constructor.
 
int determineConstrainedDOFsIDs (const MFreedom_ConstraintBase &, const int &)
 determine the IDs in myID for those DOFs marked as constrained DOFs, this is obtained from the DOF_Group associated with the constrained node. More...
 
DOF_GroupdetermineConstrainedNodeDofGrpPtr (void)
 get the DOF_Group attached to the constrained node.
 
- Protected Member Functions inherited from XC::MPSPBaseFE
 MPSPBaseFE (int tag, int numDOF_Group, int ndof, const double &alpha=1.0)
 
- Protected Member Functions inherited from XC::FE_Element
void addLocalM_Force (const Vector &accel, double fact=1.0)
 
void addLocalD_Force (const Vector &vel, double fact=1.0)
 
void addLocalM_ForceSensitivity (int gradNumber, const Vector &accel, double fact=1.0)
 
void addLocalD_ForceSensitivity (int gradNumber, const Vector &vel, double fact=1.0)
 
 FE_Element (int tag, Element *theElement)
 Construictor that take the corresponding model element. More...
 
 FE_Element (int tag, int numDOF_Group, int ndof)
 Constructor. More...
 
- Protected Member Functions inherited from XC::TaggedObject
void setTag (int newTag)
 Set tag. More...
 
- Protected Attributes inherited from XC::MFreedom_FE
MFreedom_ConstrainttheMFreedom
 
NodetheRetainedNode
 
- Protected Attributes inherited from XC::MPBase_FE
NodetheConstrainedNode
 
- Protected Attributes inherited from XC::MPSPBaseFE
double alpha
 
Matrix tang
 
Vector resid
 
- Protected Attributes inherited from XC::FE_Element
ID myDOF_Groups
 
ID myID
 

Detailed Description

PenaltyMFreedom_FE is a subclass of FE_Element which handles MFreedom_Constraints using the penalty method.

PenaltyMP_FE is a subclass of FE_Element used to enforce a multi point constraint, of the form \(U_c = C_{cr} U_r\), where \(U_c\) are the constrained degrees-of-freedom at the constrained node, \(U_r\) are the retained degrees-of-freedom at the retained node and \(C_{cr}\) a matrix defining the relationship between these degrees-of-freedom.

To enforce the constraint a matrix \(\alpha C^T C\) is added to the tangent for the degrees-of-freedom \([U_c\) \(U_r]\), where \(C = [-I\) \(C_{cr}]\). Nothing is added to the residual.

Member Function Documentation

§ getM_Force()

const XC::Vector & XC::PenaltyMFreedom_FE::getM_Force ( const Vector disp,
double  fact = 1.0 
)
virtual

Returns the product of elements current mass matrix and a Vector whose values are obtained by taking the product of {fact} and those elements of the Vector accel associated with the FE_Elements equation numbers.

If no element is associated with the FE_Element or the associated element is a Subdomain a warning message is printed and an error Vector is returned.

Reimplemented from XC::FE_Element.

§ getTangent()

const XC::Matrix & XC::PenaltyMFreedom_FE::getTangent ( Integrator theNewIntegrator)
virtual

If the MP_Constraint is time-varying, from the MP_Constraint theMFreedom it obtains the current \(C_{cr}\) matrix; it then forms the \(C\) matrix and finally it sets the tangent matrix to be \(\alpha //! C^TC\).

Returns the tangent matrix.

Reimplemented from XC::FE_Element.

§ getTangForce()

const XC::Vector & XC::PenaltyMFreedom_FE::getTangForce ( const Vector disp,
double  fact = 1.0 
)
virtual

CURRENTLY just returns the \(0\) residual.

THIS WILL NEED TO CHANGE FOR ELE-BY-ELE SOLVERS.

Reimplemented from XC::FE_Element.

§ setID()

int XC::PenaltyMFreedom_FE::setID ( void  )
virtual

Method to set the correMPonding index of the ID to value.

Causes the PenaltyMP_FE to determine the mapping between it's equation numbers and the degrees-of-freedom. This information is obtained by using the mapping information at the DOF_Group objects associated with the constrained and retained nodes to determine the mappings between the degrees-of-freedom identified in the constrainedID and the retainedID at the MP_Constraint theMFreedom. Returns \(0\) if successful. Prints a warning message and returns a negative number if an error occurs: \(-2\) if the Node has no associated DOF_Group, \(-3\) if the constrained DOF specified is invalid for this Node (sets corresponding ID component to \(-1\) so nothing is added to the tangent) and \(-4\) if the ID in the DOF_Group is too small for the Node (again setting corresponding ID component to \(-1\)).

Reimplemented from XC::FE_Element.


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