NeoPZ
|
Implements an implicit Euler time integrator. The Material Classes Material. More...
#include <pztransientmat.h>
Public Member Functions | |
int | ClassId () const override |
TPZTransientMaterial (int nummat, int dim, REAL TimeStep) | |
Class constructor. More... | |
~TPZTransientMaterial () | |
Default destructor. More... | |
TPZTransientMaterial (const TPZTransientMaterial &cp) | |
Copy constructor. More... | |
void | SetExplicit () |
Sets integral scheme as an explicit Euler. More... | |
void | SetImplicit () |
virtual void | Contribute (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) override |
virtual void | ContributeBC (TPZMaterialData &data, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override |
virtual void | ContributeInterface (TPZMaterialData &data, TPZMaterialData &dataleft, TPZMaterialData &dataright, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef) override |
virtual void | ContributeBCInterface (TPZMaterialData &data, TPZMaterialData &dataleft, REAL weight, TPZFMatrix< STATE > &ek, TPZFMatrix< STATE > &ef, TPZBndCond &bc) override |
void | SetLastState () |
Set material to compute only Integral[- un/deltaT * v, Omega]. More... | |
void | SetCurrentState () |
Set material to compute Integral[un+1/deltaT * v, Omega] + Bilinear Form = Linear Form. More... | |
void | SetMassMatrix () |
Set material to compute ek = Integral[phi_i phi_j, Omega]/deltaT. More... | |
void | SetFluxOnly () |
Set material to compute ef = Linear Form - Bilinear Form(u) = F -ku. More... | |
void | SetTimeStep (REAL TimeStep) |
Define time step DeltaT. More... | |
REAL | TimeStep () |
Returns time step value. More... | |
virtual bool | NeedsSolutionToContribute () |
Indicates if the material requires the solution to compute Contribute. More... | |
virtual bool | NeedsXCoord () |
Indicates if the material requires the global coordinate X to compute Contribute. More... | |
Protected Types | |
enum | ETemporalScheme { EImplicit, EExplicit } |
enum | STEPS { ENone, ELast, ECurrent, EMassMatrix, EFluxOnly } |
Protected Member Functions | |
virtual void | ContributeSolutionRhs (TPZVec< STATE > &sol, TPZFMatrix< REAL > &phi, REAL weight, TPZFMatrix< STATE > &ef) |
virtual void | ContributeTangent (TPZVec< STATE > &sol, TPZFMatrix< REAL > &phi, REAL weight, TPZFMatrix< STATE > &ek) |
Protected Attributes | |
ETemporalScheme | fTemporalIntegrator |
STEPS | fStep |
REAL | fTimeStep |
Implements an implicit Euler time integrator. The Material Classes Material.
Weak statement is supposed to be Integral[(un+1 - un)/deltaT * v, Omega] + Bilinear Form = Linear Form This class implements only Integral[(un+1 - un)/deltaT * v, Omega]. Bilinear and linear form must be implemented in base class TBASEMAT.
Definition at line 20 of file pztransientmat.h.
|
protected |
Enumerator | |
---|---|
EImplicit | |
EExplicit |
Definition at line 101 of file pztransientmat.h.
|
protected |
Enumerator | |
---|---|
ENone | |
ELast | |
ECurrent | |
EMassMatrix | |
EFluxOnly |
Definition at line 105 of file pztransientmat.h.
TPZTransientMaterial< TBASEMAT >::TPZTransientMaterial | ( | int | nummat, |
int | dim, | ||
REAL | TimeStep | ||
) |
Class constructor.
Definition at line 22 of file pztransientmat.cpp.
References TPZTransientMaterial< TBASEMAT >::SetTimeStep().
TPZTransientMaterial< TBASEMAT >::~TPZTransientMaterial | ( | ) |
Default destructor.
Definition at line 36 of file pztransientmat.cpp.
TPZTransientMaterial< TBASEMAT >::TPZTransientMaterial | ( | const TPZTransientMaterial< TBASEMAT > & | cp | ) |
Copy constructor.
Definition at line 28 of file pztransientmat.cpp.
References TPZTransientMaterial< TBASEMAT >::fStep, TPZTransientMaterial< TBASEMAT >::fTemporalIntegrator, and TPZTransientMaterial< TBASEMAT >::fTimeStep.
|
override |
Definition at line 9 of file pztransientmat.cpp.
References Hash().
|
overridevirtual |
Definition at line 41 of file pztransientmat.cpp.
References TPZTransientMaterial< TBASEMAT >::ContributeSolutionRhs(), TPZTransientMaterial< TBASEMAT >::ContributeTangent(), DebugStop, TPZTransientMaterial< TBASEMAT >::ECurrent, TPZTransientMaterial< TBASEMAT >::EFluxOnly, TPZTransientMaterial< TBASEMAT >::ELast, TPZTransientMaterial< TBASEMAT >::EMassMatrix, TPZTransientMaterial< TBASEMAT >::fStep, TPZMaterialData::phi, PZError, TPZVec< T >::size(), and TPZMaterialData::sol.
|
overridevirtual |
Definition at line 81 of file pztransientmat.cpp.
References TPZTransientMaterial< TBASEMAT >::ECurrent, TPZTransientMaterial< TBASEMAT >::EFluxOnly, TPZTransientMaterial< TBASEMAT >::ELast, TPZTransientMaterial< TBASEMAT >::EMassMatrix, TPZTransientMaterial< TBASEMAT >::fStep, PZError, and TPZMatrix< TVar >::Rows().
|
overridevirtual |
|
overridevirtual |
|
protectedvirtual |
Definition at line 175 of file pztransientmat.cpp.
References TPZTransientMaterial< TBASEMAT >::ECurrent, TPZTransientMaterial< TBASEMAT >::fStep, TPZMatrix< TVar >::Rows(), and TPZTransientMaterial< TBASEMAT >::TimeStep().
Referenced by TPZTransientMaterial< TBASEMAT >::Contribute().
|
protectedvirtual |
Definition at line 192 of file pztransientmat.cpp.
References TPZMatrix< TVar >::Rows(), and TPZTransientMaterial< TBASEMAT >::TimeStep().
Referenced by TPZTransientMaterial< TBASEMAT >::Contribute().
|
inlinevirtual |
Indicates if the material requires the solution to compute Contribute.
By default its value is true, but it can be set as false by derived material classes
to increase the performance of method TPZCompEl::CalcStiff
Definition at line 86 of file pztransientmat.h.
|
inlinevirtual |
Indicates if the material requires the global coordinate X to compute Contribute.
By default its value is true, but it can be set as false by derived material classes
to increase the performance of method TPZCompEl::CalcStiff
Definition at line 95 of file pztransientmat.h.
References TPZTransientMaterial< TBASEMAT >::ELast, and TPZTransientMaterial< TBASEMAT >::fStep.
|
inline |
Set material to compute Integral[un+1/deltaT * v, Omega] + Bilinear Form = Linear Form.
Definition at line 122 of file pztransientmat.h.
References TPZTransientMaterial< TBASEMAT >::ECurrent, and TPZTransientMaterial< TBASEMAT >::fStep.
Referenced by TPZTransientAnalysis< TRANSIENTCLASS >::SetCurrentState().
void TPZTransientMaterial< TBASEMAT >::SetExplicit | ( | ) |
Sets integral scheme as an explicit Euler.
Definition at line 13 of file pztransientmat.cpp.
Referenced by TPZTransientAnalysis< TRANSIENTCLASS >::SetExplicit().
|
inline |
Set material to compute ef = Linear Form - Bilinear Form(u) = F -ku.
Definition at line 132 of file pztransientmat.h.
References TPZTransientMaterial< TBASEMAT >::EFluxOnly, and TPZTransientMaterial< TBASEMAT >::fStep.
Referenced by TPZTransientAnalysis< TRANSIENTCLASS >::SetFluxOnly().
void TPZTransientMaterial< TBASEMAT >::SetImplicit | ( | ) |
√Sets integral scheme as an implicit Euler
Definition at line 17 of file pztransientmat.cpp.
Referenced by TPZTransientAnalysis< TRANSIENTCLASS >::SetImplicit().
|
inline |
Set material to compute only Integral[- un/deltaT * v, Omega].
Definition at line 117 of file pztransientmat.h.
References TPZTransientMaterial< TBASEMAT >::ELast, and TPZTransientMaterial< TBASEMAT >::fStep.
Referenced by TPZTransientAnalysis< TRANSIENTCLASS >::SetLastState().
|
inline |
Set material to compute ek = Integral[phi_i phi_j, Omega]/deltaT.
Definition at line 127 of file pztransientmat.h.
References TPZTransientMaterial< TBASEMAT >::EMassMatrix, and TPZTransientMaterial< TBASEMAT >::fStep.
Referenced by TPZTransientAnalysis< TRANSIENTCLASS >::SetMassMatrix().
|
inline |
Define time step DeltaT.
Definition at line 137 of file pztransientmat.h.
References TPZTransientMaterial< TBASEMAT >::fTimeStep, and TPZTransientMaterial< TBASEMAT >::TimeStep().
Referenced by TPZTransientAnalysis< TRANSIENTCLASS >::SetAllMaterialsDeltaT(), and TPZTransientMaterial< TBASEMAT >::TPZTransientMaterial().
|
inline |
Returns time step value.
Definition at line 142 of file pztransientmat.h.
References TPZTransientMaterial< TBASEMAT >::fTimeStep.
Referenced by TPZTransientMaterial< TBASEMAT >::ContributeSolutionRhs(), TPZTransientMaterial< TBASEMAT >::ContributeTangent(), and TPZTransientMaterial< TBASEMAT >::SetTimeStep().
|
protected |
Definition at line 107 of file pztransientmat.h.
Referenced by TPZTransientMaterial< TBASEMAT >::Contribute(), TPZTransientMaterial< TBASEMAT >::ContributeBC(), TPZTransientMaterial< TBASEMAT >::ContributeBCInterface(), TPZTransientMaterial< TBASEMAT >::ContributeInterface(), TPZTransientMaterial< TBASEMAT >::ContributeSolutionRhs(), TPZTransientMaterial< TBASEMAT >::NeedsXCoord(), TPZTransientMaterial< TBASEMAT >::SetCurrentState(), TPZTransientMaterial< TBASEMAT >::SetFluxOnly(), TPZTransientMaterial< TBASEMAT >::SetLastState(), TPZTransientMaterial< TBASEMAT >::SetMassMatrix(), and TPZTransientMaterial< TBASEMAT >::TPZTransientMaterial().
|
protected |
Definition at line 103 of file pztransientmat.h.
Referenced by TPZTransientMaterial< TBASEMAT >::TPZTransientMaterial().
|
protected |
Definition at line 109 of file pztransientmat.h.
Referenced by TPZTransientMaterial< TBASEMAT >::SetTimeStep(), TPZTransientMaterial< TBASEMAT >::TimeStep(), and TPZTransientMaterial< TBASEMAT >::TPZTransientMaterial().