NeoPZ
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
TPZTransientMaterial< TBASEMAT > Class Template Reference

Implements an implicit Euler time integrator. The Material Classes Material. More...

#include <pztransientmat.h>

Inheritance diagram for TPZTransientMaterial< TBASEMAT >:
[legend]
Collaboration diagram for TPZTransientMaterial< TBASEMAT >:
[legend]

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
 

Detailed Description

template<class TBASEMAT>
class TPZTransientMaterial< TBASEMAT >

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.

Member Enumeration Documentation

◆ ETemporalScheme

template<class TBASEMAT>
enum TPZTransientMaterial::ETemporalScheme
protected
Enumerator
EImplicit 
EExplicit 

Definition at line 101 of file pztransientmat.h.

◆ STEPS

template<class TBASEMAT>
enum TPZTransientMaterial::STEPS
protected
Enumerator
ENone 
ELast 
ECurrent 
EMassMatrix 
EFluxOnly 

Definition at line 105 of file pztransientmat.h.

Constructor & Destructor Documentation

◆ TPZTransientMaterial() [1/2]

template<class TBASEMAT >
TPZTransientMaterial< TBASEMAT >::TPZTransientMaterial ( int  nummat,
int  dim,
REAL  TimeStep 
)

Class constructor.

Definition at line 22 of file pztransientmat.cpp.

References TPZTransientMaterial< TBASEMAT >::SetTimeStep().

◆ ~TPZTransientMaterial()

template<class TBASEMAT >
TPZTransientMaterial< TBASEMAT >::~TPZTransientMaterial ( )

Default destructor.

Definition at line 36 of file pztransientmat.cpp.

◆ TPZTransientMaterial() [2/2]

template<class TBASEMAT >
TPZTransientMaterial< TBASEMAT >::TPZTransientMaterial ( const TPZTransientMaterial< TBASEMAT > &  cp)

Member Function Documentation

◆ ClassId()

template<class TBASEMAT >
int TPZTransientMaterial< TBASEMAT >::ClassId ( ) const
override

Definition at line 9 of file pztransientmat.cpp.

References Hash().

◆ Contribute()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::Contribute ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef 
)
overridevirtual

◆ ContributeBC()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::ContributeBC ( TPZMaterialData data,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef,
TPZBndCond bc 
)
overridevirtual

◆ ContributeBCInterface()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::ContributeBCInterface ( TPZMaterialData data,
TPZMaterialData dataleft,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef,
TPZBndCond bc 
)
overridevirtual

◆ ContributeInterface()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::ContributeInterface ( TPZMaterialData data,
TPZMaterialData dataleft,
TPZMaterialData dataright,
REAL  weight,
TPZFMatrix< STATE > &  ek,
TPZFMatrix< STATE > &  ef 
)
overridevirtual

◆ ContributeSolutionRhs()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::ContributeSolutionRhs ( TPZVec< STATE > &  sol,
TPZFMatrix< REAL > &  phi,
REAL  weight,
TPZFMatrix< STATE > &  ef 
)
protectedvirtual

◆ ContributeTangent()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::ContributeTangent ( TPZVec< STATE > &  sol,
TPZFMatrix< REAL > &  phi,
REAL  weight,
TPZFMatrix< STATE > &  ek 
)
protectedvirtual

◆ NeedsSolutionToContribute()

template<class TBASEMAT>
virtual bool TPZTransientMaterial< TBASEMAT >::NeedsSolutionToContribute ( )
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.

◆ NeedsXCoord()

template<class TBASEMAT>
virtual bool TPZTransientMaterial< TBASEMAT >::NeedsXCoord ( )
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.

◆ SetCurrentState()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::SetCurrentState ( )
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().

◆ SetExplicit()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::SetExplicit ( )

Sets integral scheme as an explicit Euler.

Definition at line 13 of file pztransientmat.cpp.

Referenced by TPZTransientAnalysis< TRANSIENTCLASS >::SetExplicit().

◆ SetFluxOnly()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::SetFluxOnly ( )
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().

◆ SetImplicit()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::SetImplicit ( )

√Sets integral scheme as an implicit Euler

Definition at line 17 of file pztransientmat.cpp.

Referenced by TPZTransientAnalysis< TRANSIENTCLASS >::SetImplicit().

◆ SetLastState()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::SetLastState ( )
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().

◆ SetMassMatrix()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::SetMassMatrix ( )
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().

◆ SetTimeStep()

template<class TBASEMAT >
void TPZTransientMaterial< TBASEMAT >::SetTimeStep ( REAL  TimeStep)
inline

◆ TimeStep()

template<class TBASEMAT >
REAL TPZTransientMaterial< TBASEMAT >::TimeStep ( )
inline

Member Data Documentation

◆ fStep

template<class TBASEMAT>
STEPS TPZTransientMaterial< TBASEMAT >::fStep
protected

◆ fTemporalIntegrator

template<class TBASEMAT>
ETemporalScheme TPZTransientMaterial< TBASEMAT >::fTemporalIntegrator
protected

◆ fTimeStep

template<class TBASEMAT>
REAL TPZTransientMaterial< TBASEMAT >::fTimeStep
protected

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