|
IFEM 90A354
|
Class representing the element matrices for a dynamic FEM problem based on Newmark time integration. More...
#include <NewmarkMats.h>


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. | |
| virtual | ~NewmarkMats () |
| Empty destructor. | |
| virtual void | setStepSize (double dt, int it) |
| Updates the time step size and the isPredictor flag. | |
| 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. | |
| void | redim (size_t ndim) |
| Sets the dimension of the element matrices and vectors. | |
| 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. | |
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. | |
Class representing the element matrices for a dynamic FEM problem based on Newmark time integration.
| NewmarkMats::NewmarkMats | ( | double | a1, |
| double | a2, | ||
| double | b = 0.0, |
||
| double | c = 0.0, |
||
| bool | generalizedAlpha = false |
||
| ) |
The constructor initializes the time integration parameters.
| [in] | a1 | Mass-proportional damping coefficient |
| [in] | a2 | Stiffness-proportional damping coefficient |
| [in] | b | Time integration parameter |
| [in] | c | Time integration parameter |
| [in] | generalizedAlpha | If 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.
|
virtual |
Returns the element-level Newton matrix.
Reimplemented from ElmMats.
Reimplemented in HHTMats.
References ElmMats::A, utl::matrix< T >::add(), alpha1, alpha2, alpha_f, alpha_m, beta, ElmMats::empty(), utl::matrix< T >::fill(), gamma, ElmMats::getNewtonMatrix(), h, utl::matrix< T >::multiply(), and slvDisp.
|
virtual |
Returns the element-level right-hand-side vector.
Reimplemented from ElmMats.
Reimplemented in HHTMats.
References ElmMats::A, acc(), utl::vector< T >::add(), alpha1, alpha2, ElmMats::b, dis(), ElmMats::getRHSVector(), ElmMats::printVec(), LocalIntegral::vec, and vel().
|
inlinevirtual |
Updates the time step size and the isPredictor flag.
| [in] | dt | New time step size |
| [in] | it | Newton-Raphson iteration counter |
Reimplemented from ElmMats.
References h, and isPredictor.