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 MatrixgetNewtonMatrix () const
 Returns the element-level Newton matrix.
 
virtual const VectorgetRHSVector () const
 Returns the element-level right-hand-side vector.
 
const Vectordis (bool prev=false) const
 Returns a const reference to current/previous displacement vector.
 
const Vectorvel (bool prev=false) const
 Returns a const reference to current/previous velocity vector.
 
const Vectoracc (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 LocalIntegralref () 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< MatrixA
 The element coefficient matrices.
 
std::vector< Vectorb
 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: