IFEM  90A354
Public Member Functions | Protected Attributes | Private Attributes | List of all members
NewmarkMats Class Reference

Class representing the element matrices for a dynamic FEM problem based on Newmark time integration. More...

#include <NewmarkMats.h>

Inheritance diagram for NewmarkMats:
Inheritance graph
[legend]
Collaboration diagram for NewmarkMats:
Collaboration graph
[legend]

Public Member Functions

 NewmarkMats (double a1, double a2, double b=0.0, double c=0.0, bool generalizedAlpha=false)
 The constructor initializes the time integration parameters. More...
 
virtual ~NewmarkMats ()
 Empty destructor.
 
virtual void setStepSize (double dt, int it)
 Updates the time step size and the isPredictor flag. More...
 
virtual const Matrix & getNewtonMatrix () const
 Returns the element-level Newton matrix.
 
virtual const Vector & getRHSVector () const
 Returns the element-level right-hand-side vector.
 
const Vector & dis (bool prev=false) const
 Returns a const reference to current/previous displacement vector.
 
const Vector & vel (bool prev=false) const
 Returns a const reference to current/previous velocity vector.
 
const Vector & acc (bool prev=false) const
 Returns a const reference to current/previous velocity vector.
 
- Public Member Functions inherited from ElmMats
 ElmMats (bool lhs=true)
 Default constructor.
 
virtual ~ElmMats ()
 Empty destructor.
 
void resize (size_t nA, size_t nB, size_t nC=0)
 Defines the number of element matrices and vectors. More...
 
void redim (size_t ndim)
 Sets the dimension of the element matrices and vectors. More...
 
virtual bool empty () const
 Checks if the element matrices are empty.
 
void printMat (std::ostream &os, size_t idx=0, const char *prefix=nullptr) const
 Prints element matrix idx to output stream os.
 
void printVec (std::ostream &os, size_t idx=0, const char *prefix=nullptr) const
 Prints element vector idx to output stream os.
 
void printScl (std::ostream &os, size_t idx=0, const char *prefix=nullptr) const
 Prints element scalar idx to output stream os.
 
- Public Member Functions inherited from LocalIntegral
virtual ~LocalIntegral ()
 Empty destructor.
 
virtual void destruct ()
 Virtual destruction method to clean up after numerical integration.
 
virtual const LocalIntegral * ref () const
 Returns the LocalIntegral object to assemble into the global one.
 
void getSolution (size_t nsd, size_t nen, Matrix *u=nullptr, Matrix *v=nullptr, Matrix *a=nullptr, bool forceCurrent=false) const
 Extracts element solution vectors as nsd by nen matrices. More...
 

Protected Attributes

bool isPredictor
 If true, we are in the predictor step.
 
double h
 Time step size.
 
double alpha1
 Mass-proportional damping coefficient.
 
double alpha2
 Stiffness-proportional damping coefficient.
 
double beta
 Newmark time integration parameter, β.
 
double gamma
 Newmark time integration parameter, γ.
 

Private Attributes

double alpha_m
 Generalized-alpha parameter, αm
 
double alpha_f
 Generalized-alpha parameter, αf
 
bool slvDisp
 If true, solve for displacement increments.
 

Additional Inherited Members

- Public Attributes inherited from ElmMats
std::vector< Matrix > A
 The element coefficient matrices.
 
std::vector< Vector > b
 The element right-hand-side vectors.
 
std::vector< double > c
 The scalar quantities.
 
std::vector< const char * > Aname
 Matrix names (for debug print)
 
std::vector< const char * > Bname
 Vector names (for debug print)
 
std::vector< const char * > Cname
 Scalar names (for debug print)
 
bool rhsOnly
 If true, only the right-hand-sides are assembled.
 
bool withLHS
 If true, left-hand-side element matrices are present.
 
- Public Attributes inherited from LocalIntegral
Vectors vec
 Element-level primary solution vectors.
 
- Protected Member Functions inherited from LocalIntegral
 LocalIntegral ()
 The default constructor is protected to allow sub-classes only.
 

Detailed Description

Class representing the element matrices for a dynamic FEM problem based on Newmark time integration.

Constructor & Destructor Documentation

◆ NewmarkMats()

NewmarkMats::NewmarkMats ( double  a1,
double  a2,
double  b = 0.0,
double  c = 0.0,
bool  generalizedAlpha = false 
)

The constructor initializes the time integration parameters.

Parameters
[in]a1Mass-proportional damping coefficient
[in]a2Stiffness-proportional damping coefficient
[in]bTime integration parameter
[in]cTime integration parameter
[in]generalizedAlphaIf true, interpret b and c as the generalized-alpha parameters αm and αf, respectively, otherwise as β and γ, respectively

References alpha1, alpha2, alpha_f, alpha_m, ElmMats::b, beta, ElmMats::c, gamma, and slvDisp.

Member Function Documentation

◆ setStepSize()

virtual void NewmarkMats::setStepSize ( double  dt,
int  it 
)
inlinevirtual

Updates the time step size and the isPredictor flag.

Parameters
[in]dtNew time step size
[in]itNewton-Raphson iteration counter

Reimplemented from ElmMats.

References h, and isPredictor.


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