Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
FEDD::Elasticity< SC, LO, GO, NO > Class Template Reference

Elasticity. More...

#include <Elasticity_decl.hpp>

Inheritance diagram for FEDD::Elasticity< SC, LO, GO, NO >:

Public Types

typedef LinearProblem< SC, LO, GO, NO > LinearProblem_Type
typedef NonLinearProblem< SC, LO, GO, NO > NonLinearProblem_Type
typedef Teuchos::RCP< LinearProblem_Type > LinearProblemPtr_Type
typedef Teuchos::RCP< NonLinearProblem_Type > NonLinearProblemPtr_Type
typedef LinElas< SC, LO, GO, NO > LinElas_Type
typedef NonLinElasticity< SC, LO, GO, NO > NonLinElas_Type
typedef Problem< SC, LO, GO, NO > Problem_Type
typedef Problem_Type::DomainConstPtr_Type DomainConstPtr_Type
typedef Problem_Type::BlockMatrix_Type BlockMatrix_Type
typedef Problem_Type::BlockMatrixPtr_Type BlockMatrixPtr_Type
Public Types inherited from FEDD::NonLinearProblem< default_sc, default_lo, default_go, default_no >
typedef Problem< default_sc, default_lo, default_go, default_no > Problem_Type
typedef Problem_Type::CommConstPtr_Type CommConstPtr_Type
typedef Problem_Type::MapConstPtr_Type MapConstPtr_Type
typedef Problem_Type::MultiVector_Type MultiVector_Type
typedef Problem_Type::MultiVectorPtr_Type MultiVectorPtr_Type
typedef Problem_Type::MultiVectorConstPtr_Type MultiVectorConstPtr_Type
typedef Problem_Type::BlockMultiVector_Type BlockMultiVector_Type
typedef Problem_Type::BlockMultiVectorPtr_Type BlockMultiVectorPtr_Type
typedef Problem_Type::Matrix_Type Matrix_Type
typedef Problem_Type::MatrixPtr_Type MatrixPtr_Type
typedef Problem_Type::BlockMatrix_Type BlockMatrix_Type
typedef Problem_Type::BlockMatrixPtr_Type BlockMatrixPtr_Type
typedef Tpetra::Map< default_lo, default_go, default_no > TpetraMap_Type
typedef Teuchos::RCP< TpetraMap_Type > TpetraMapPtr_Type
typedef Teuchos::RCP< const TpetraMap_Type > TpetraMapConstPtr_Type
typedef const TpetraMapConstPtr_Type TpetraMapConstPtrConst_Type
typedef BlockMap< default_lo, default_go, default_no > BlockMap_Type
typedef Teuchos::RCP< BlockMap_Type > BlockMapPtr_Type
typedef Teuchos::RCP< const BlockMap_Type > BlockMapConstPtr_Type
typedef Teuchos::Array< BlockMultiVectorPtr_Type > BlockMultiVectorPtrArray_Type
using ThyraTypes
using TpetraTypes
using ThyraVecSpace_Type
typedef Teuchos::RCP< const ThyraVecSpace_Type > ThyraVecSpaceConstPtr_Type
using ThyraVec_Type
using TpetraMatrix_Type
using ThyraOp_Type
using TpetraOp_Type
typedef Thyra::BlockedLinearOpBase< default_sc > ThyraBlockOp_Type
Public Types inherited from FEDD::Problem< default_sc, default_lo, default_go, default_no >
typedef Domain< default_sc, default_lo, default_go, default_no > Domain_Type
typedef Teuchos::RCP< Domain_Type > DomainPtr_Type
typedef Teuchos::RCP< const Domain_Type > DomainConstPtr_Type
typedef std::vector< DomainConstPtr_Type > DomainConstPtr_vec_Type
typedef Matrix< default_sc, default_lo, default_go, default_no > Matrix_Type
typedef Teuchos::RCP< Matrix_Type > MatrixPtr_Type
typedef Matrix_Type::Map_Type Map_Type
typedef Matrix_Type::MapPtr_Type MapPtr_Type
typedef Matrix_Type::MapConstPtr_Type MapConstPtr_Type
typedef BlockMatrix< default_sc, default_lo, default_go, default_no > BlockMatrix_Type
typedef Teuchos::RCP< BlockMatrix_Type > BlockMatrixPtr_Type
typedef Teuchos::RCP< const BlockMatrix_Type > BlockMatrixConstPtr_Type
typedef MultiVector< default_sc, default_lo, default_go, default_no > MultiVector_Type
typedef Teuchos::RCP< MultiVector_Type > MultiVectorPtr_Type
typedef Teuchos::RCP< const MultiVector_Type > MultiVectorConstPtr_Type
typedef BlockMultiVector< default_sc, default_lo, default_go, default_no > BlockMultiVector_Type
typedef Teuchos::RCP< BlockMultiVector_Type > BlockMultiVectorPtr_Type
typedef Teuchos::RCP< const BlockMultiVector_Type > BlockMultiVectorConstPtr_Type
typedef Preconditioner< default_sc, default_lo, default_go, default_no > Preconditioner_Type
typedef Teuchos::RCP< Preconditioner_Type > PreconditionerPtr_Type
typedef Teuchos::RCP< const Preconditioner_Type > PreconditionerConstPtr_Type
typedef BCBuilder< default_sc, default_lo, default_go, default_no > BC_Type
typedef Teuchos::RCP< BC_Type > BCPtr_Type
typedef Teuchos::RCP< const BC_Type > BCConstPtr_Type
typedef FE< default_sc, default_lo, default_go, default_no > FEFac_Type
typedef Teuchos::RCP< FEFac_Type > FEFacPtr_Type
typedef Teuchos::RCP< const FEFac_Type > FEFacConstPtr_Type
typedef Teuchos::ParameterList ParameterList_Type
typedef Teuchos::RCP< ParameterList_Type > ParameterListPtr_Type
typedef Teuchos::RCP< Stratimikos::DefaultLinearSolverBuilder > LinSolverBuilderPtr_Type
typedef Teuchos::RCP< const Stratimikos::DefaultLinearSolverBuilder > LinSolverBuilderConstPtr_Type
typedef Teuchos::Comm< int > Comm_Type
typedef Teuchos::RCP< const Comm_Type > CommConstPtr_Type
typedef Teuchos::ArrayRCP< default_go > GOVecPtr
typedef std::vector< std::string > string_vec_Type
typedef Teuchos::RCP< Thyra::PreconditionerBase< default_sc > > ThyraPrecPtr_Type
using ThyraTypes
using ThyraLinOpPtr_Type

Public Member Functions

 Elasticity (const DomainConstPtr_Type &domain, std::string FEType, ParameterListPtr_Type parameterList)
virtual void info ()
virtual void assemble ()
virtual void reAssemble (std::string type="Newton") const
virtual void reAssembleExtrapolation ()
virtual void calculateNonLinResidualVec (std::string type) const
virtual void getValuesOfInterest (vec_dbl_Type &values)
 Virtual class to extract values of interest that are computed during the solve.
virtual void computeValuesOfInterestAndExport ()
Teuchos::RCP< Thyra::LinearOpBase< SC > > create_W_op () const
Teuchos::RCP< Thyra::PreconditionerBase< SC > > create_W_prec () const
Public Member Functions inherited from FEDD::NonLinearProblem< default_sc, default_lo, default_go, default_no >
 NonLinearProblem (CommConstPtr_Type comm)
 Constructor.
void infoNonlinProblem ()
 Information about the non-linear problem.
void initializeProblem (int nmbVectors=1)
 Initialisation of the non-linear problem with system, vectors, and Thyra vector spaces for NOX.
virtual void assemble (std::string type="") const=0
 assemble of type exectuted by the derived specific non-linear problem classes
int solveAndUpdate (const std::string &criterion, double &criterionValue)
 Solving the non-linear problem and updating the solution.
int solveUpdate ()
 This is where the linear solve specifically happens.
virtual void reAssemble (BlockMultiVectorPtr_Type previousSolution) const=0
 Reassemble with previous solution. I think it is not used anymore. @TODO: Look into this.
void reAssembleAndFill (BlockMatrixPtr_Type bMat, std::string type="FixedPoint")
virtual void reAssembleExtrapolation (BlockMultiVectorPtrArray_Type previousSolutions)=0
void initializeVectorsNonLinear (int nmbVectors=1)
 Initialisation of the non-linear vectors like residual and previous solution.
double calculateResidualNorm () const
 Calculate the 2-norm of the residual vector.
virtual void calculateNonLinResidualVec (std::string type="standard", double time=0.) const=0
 Virtual function which is implemented in the specific non-linear problem classes to calculate the non-linear residual vector.
BlockMultiVectorPtr_Type getResidualVector () const
 Get the residual vector.
BlockMultiVectorPtr_Type getPreviousSolution () const
 Get previous solution. Needed for time-dependent problems.
virtual Thyra::ModelEvaluatorBase::InArgs< default_sc > getNominalValues () const
virtual Teuchos::RCP< const ::Thyra::VectorSpaceBase< default_sc > > get_x_space () const
virtual Teuchos::RCP< const ::Thyra::VectorSpaceBase< default_sc > > get_f_space () const
virtual ::Thyra::ModelEvaluatorBase::InArgs< default_sc > createInArgs () const
void initNOXParameters ()
void initVectorSpaces ()
void initVectorSpacesMonolithic ()
void initVectorSpacesBlock ()
virtual ::Thyra::ModelEvaluatorBase::OutArgs< default_sc > createOutArgsImpl () const
void setNonlinearIterationStep (int newtonStep)
int getNonlinearIterationStep () const override
Teuchos::RCP< Thyra::LinearOpBase< default_sc > > create_W_op () const
 Block Approach for Nonlinear Solver NOX. Input. Includes calculation of the residual vector and update (reAssembly) of non constant matrices with new solution. ResidualVec and SystemMatrix of this class are then converted into the corresponding Thyra/Tpetra objects for Solver.
Teuchos::RCP< Thyra::LinearOpBase< default_sc > > create_W_op_Monolithic () const
Teuchos::RCP< Thyra::PreconditionerBase< default_sc > > create_W_prec () const
Public Member Functions inherited from FEDD::Problem< default_sc, default_lo, default_go, default_no >
 Problem (CommConstPtr_Type comm)
void infoProblem ()
void infoParameter (bool full=true, std::string="empty")
void addVariable (const DomainConstPtr_Type &domain, std::string FEType, std::string name, int dofsPerNode)
void addRhsFunction (RhsFunc_Type func)
RhsFunc_Type & getRhsFunction (int i)
void assembleSourceTerm (double time=0.) const
void assembleVolumeTerm (double time) const
void assembleSurfaceTerm (double time) const
bool hasSourceTerm () const
int solve (BlockMultiVectorPtr_Type rhs=Teuchos::null)
void setupPreconditioner (std::string type="Monolithic") const
void initializePreconditioner (std::string type="Monolithic") const
void addBoundaries (const BCConstPtr_Type &bcFactory)
void setBoundaries (double time=.0) const
void setBoundariesRHS (double time=.0) const
void setAllDirichletZero (BlockMultiVectorPtr_Type rhs) const
void setBoundariesSystem () const
void initializeProblem (int nmbVectors=1)
void initializeVectors (int nmbVectors=1)
BlockMultiVectorPtr_Type getRhs ()
BlockMultiVectorPtr_Type getSolution ()
BlockMatrixPtr_Type getSystem () const
PreconditionerPtr_Type getPreconditioner ()
PreconditionerConstPtr_Type getPreconditionerConst () const
void setPreconditionerThyraFromLinOp (ThyraLinOpPtr_Type precLinOp)
void initializeSolverBuilder () const
bool getVerbose () const
FEFacConstPtr_Type getFEFactory ()
BCConstPtr_Type getBCFactory ()
DomainConstPtr_Type getDomain (int i) const
DomainConstPtr_vec_Type getDomainVector () const
std::string getFEType (int i) const
std::string getVariableName (int i) const
int getDofsPerNode (int i) const
ParameterListPtr_Type getParameterList () const
void addToRhs (BlockMultiVectorPtr_Type x) const
BlockMultiVectorPtr_Type getSourceTerm ()
void initSolutionWithVector (MultiVector_Type &mv)
LinSolverBuilderPtr_Type getLinearSolverBuilder () const
CommConstPtr_Type getComm () const
void addParemeterRhs (double para)
void changeAssFELinearization (std::string linearization)
double calculateH1Norm (MultiVectorConstPtr_Type mv, int blockId1=0, int blockId2=0, int domainInd=0)
double calculateL2Norm (MultiVectorConstPtr_Type mv, int domainInd=0)

Additional Inherited Members

Public Attributes inherited from FEDD::NonLinearProblem< default_sc, default_lo, default_go, default_no >
double nonLinearTolerance_
BlockMultiVectorPtr_Type previousSolution_
BlockMultiVectorPtr_Type residualVec_
SmallMatrix< double > coeff_
int newtonStep_
Public Attributes inherited from FEDD::Problem< default_sc, default_lo, default_go, default_no >
int dim_
CommConstPtr_Type comm_
BlockMatrixPtr_Type system_
BlockMultiVectorPtr_Type rhs_
BlockMultiVectorPtr_Type solution_
PreconditionerPtr_Type preconditioner_
LinSolverBuilderPtr_Type linearSolverBuilder_
bool verbose_
std::vector< RhsFunc_Type > rhsFuncVec_
vec_dbl_Type parasSourceFunc_
Protected Attributes inherited from FEDD::Problem< default_sc, default_lo, default_go, default_no >
ParameterListPtr_Type parameterList_
DomainConstPtr_vec_Type domainPtr_vec_
string_vec_Type domain_FEType_vec_
string_vec_Type variableName_vec_
BCConstPtr_Type bcFactory_
FEFacPtr_Type feFactory_
std::vector< int > dofsPerNode_vec_
BlockMultiVectorPtr_Type sourceTerm_

Detailed Description

template<class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
class FEDD::Elasticity< SC, LO, GO, NO >

Elasticity.

Declaration of Elasticity

Author
Christian Hochmuth
Version
1.0

Member Function Documentation

◆ computeValuesOfInterestAndExport()

template<class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
virtual void FEDD::Elasticity< SC, LO, GO, NO >::computeValuesOfInterestAndExport ( )
inlinevirtual

◆ getValuesOfInterest()

template<class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
virtual void FEDD::Elasticity< SC, LO, GO, NO >::getValuesOfInterest ( vec_dbl_Type & values)
inlinevirtual

Virtual class to extract values of interest that are computed during the solve.

Parameters
values

Implements FEDD::NonLinearProblem< default_sc, default_lo, default_go, default_no >.

◆ info()

template<class SC, class LO, class GO, class NO>
void FEDD::Elasticity< SC, LO, GO, NO >::info ( )
virtual

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