G+Smo  25.01.0
Geometry + Simulation Modules
 
Loading...
Searching...
No Matches
gsALE.h
Go to the documentation of this file.
1
15#pragma once
16#include <gsIO/gsOptionList.h>
18#include <gsCore/gsMultiPatch.h>
21
22namespace gismo
23{
24
25template <class T>
26class gsBaseAssembler;
27template <class T>
28class gsIterative;
29
30template <class T>
31class gsALE
32{
33public:
34 gsALE(gsMultiPatch<T> & geometry, const gsMultiPatch<T> & displacement,
35 const gsBoundaryInterface & interfaceStr2Mesh, ale_method::method method);
36
38 static gsOptionList defaultOptions();
39
41 gsOptionList & options() { return m_options; }
42
44 index_t numDofs() const {return assembler->numDofs();}
45
47 void constructSolution(gsMultiPatch<T> & solution) const;
48
50 index_t updateMesh();
51
53 void saveState();
54
56 void recoverState();
57
59 const gsBoundaryInterface & interface() { return m_interface;}
60
61protected:
62 void initialize();
63
65 index_t linearMethod();
66
68 index_t linearIncrementalMethod();
69
71 index_t nonlinearMethod();
72
73protected:
75 const gsMultiPatch<T> & disp;
77 const gsBoundaryInterface & m_interface;
79 ale_method::method methodALE;
81 gsOptionList m_options;
83 typename gsBaseAssembler<T>::uPtr assembler;
85 typename gsIterative<T>::uPtr solverNL;
87 gsMultiPatch<T> ALEdisp;
89 bool initialized;
90
91
93 bool hasSavedState;
94 gsMultiPatch<T> ALEdispSaved;
95};
96
97} // namespace ends
98
99#ifndef GISMO_BUILD_LIB
100#include GISMO_HPP_HEADER(gsALE.hpp)
101#endif
Base class for assemblers of gsElasticity.
Provides several simple utility and naming classes.
#define index_t
Definition gsConfig.h:32
A class providing an iterative solver for nonlinear problems.
Provides declaration of the MultiPatch class.
Provides a list of labeled parameters/options that can be set and accessed easily.
The G+Smo namespace, containing all definitions for the library.
method
Definition gsBaseUtils.h:29