G+Smo  25.01.0
Geometry + Simulation Modules
 
Loading...
Searching...
No Matches
gsALMConsistentCrisfield.h
Go to the documentation of this file.
1
19#pragma once
20
22
23namespace gismo
24{
25
33template <class T>
35{
36
37 typedef gsALMBase<T> Base;
38
39 typedef typename Base::ALResidual_t ALResidual_t;
40 typedef typename Base::Jacobian_t Jacobian_t;
41 typedef typename Base::dJacobian_t dJacobian_t;
42
43public:
44
45 using Base::setLength;
46
47protected:
48
49 using Base::computeJacobian;
50 using Base::computeResidual;
52 using Base::computeUt;
56
57public:
58
60 gsALMConsistentCrisfield( const Jacobian_t &Jacobian,
61 const ALResidual_t&ALResidual,
62 const gsVector<T> &Force )
63 : Base(Jacobian,ALResidual,Force)
64 {
66 getOptions();
67
69 }
70
72 gsALMConsistentCrisfield( const dJacobian_t &dJacobian,
73 const ALResidual_t&ALResidual,
74 const gsVector<T> &Force )
75 : Base(dJacobian,ALResidual,Force)
76 {
78 getOptions();
79
81 }
82
83protected:
84
86 void initMethods();
88 void initiateStep();
90 void iterationFinish();
91
96
98 void predictor();
99 void predictorGuess();
101 void iteration();
102
104 void initOutput();
106 void stepOutput();
107
109 void defaultOptions();
111 void getOptions();
112
113protected:
114
115 // Number of degrees of freedom
116 using Base::m_numDof;
117
118 using Base::m_jacobian;
119 using Base::m_djacobian;
120 using Base::m_residualFun;
121 using Base::m_forcing;
122
124 using Base::m_options;
125
128
131
133 using Base::m_arcLength;
134 using Base::m_arcLength_prev;
135
137 using Base::m_verbose;
138
140 using Base::m_note;
141
143 using Base::m_converged;
144
146 using Base::m_residueF;
147
149 using Base::m_residueU;
150
152 using Base::m_residueL;
153
155 using Base::m_indicator;
156 using Base::m_negatives;
157
159 using Base::m_relax;
160
161 // Previous update
162 using Base::m_DeltaUold;
163 using Base::m_DeltaLold;
165 using Base::m_U;
166 using Base::m_Uprev;
167 using Base::m_Uguess;
169 using Base::m_DeltaU;
171 using Base::m_deltaUbar;
173 using Base::m_deltaUt;
175 using Base::m_deltaU;
176
178 using Base::m_L;
179 using Base::m_Lprev;
180 using Base::m_Lguess;
182 using Base::m_DeltaL;
184 using Base::m_deltaL;
186 using Base::m_deltaLs;
187
189 using Base::m_jacMat;
190 using Base::m_detKT;
191
194 bool m_phi_user;
195};
196
197
198} // namespace gismo
199
200#ifndef GISMO_BUILD_LIB
201#include GISMO_HPP_HEADER(gsALMConsistentCrisfield.hpp)
202#endif
Performs the arc length method to solve a nonlinear system of equations.
Definition gsALMBase.h:38
bool m_converged
Convergence result.
Definition gsALMBase.h:454
gsVector< T > m_deltaLs
Vector with lambda updates.
Definition gsALMBase.h:504
virtual void computeLength()
Compute the adaptive arc-length.
Definition gsALMBase.hpp:106
gsVector< T > m_deltaUt
u_t
Definition gsALMBase.h:493
gsVector< T > m_DeltaU
Update of displacement vector.
Definition gsALMBase.h:489
gsVector< T > m_deltaU
Update of update of displacement vector.
Definition gsALMBase.h:495
index_t m_numIterations
Number of Arc Length iterations performed.
Definition gsALMBase.h:418
T m_relax
Relaxation factor.
Definition gsALMBase.h:479
virtual void setLength(T length)
Set arc length to length.
Definition gsALMBase.h:118
gsVector< T > m_U
Displacement vector (present, at previously converged point)
Definition gsALMBase.h:487
virtual void computeResidualNorms()
Compute the residual error norms.
Definition gsALMBase.hpp:151
T m_residueF
Force residuum.
Definition gsALMBase.h:460
index_t m_maxIterations
Maximum number of Arc Length iterations allowed.
Definition gsALMBase.h:421
T m_L
Lambda (present, at previously converged point)
Definition gsALMBase.h:498
T m_DeltaL
Update of lambdaGeneralizedSelfAdjointEigenSolver.
Definition gsALMBase.h:500
virtual void computeUt()
Compute .
Definition gsALMBase.hpp:255
T m_arcLength
Length of the step in the u,f plane.
Definition gsALMBase.h:427
virtual gsStatus computeStability(bool jacobian=true, T shift=-1e2)
Calculates the stability of the solution x.
Definition gsALMBase.hpp:521
gsSparseMatrix< T > m_jacMat
Jacobian matrix.
Definition gsALMBase.h:510
T m_deltaL
Update of update of lambda.
Definition gsALMBase.h:502
virtual void computeUbar()
Compute .
Definition gsALMBase.hpp:249
T m_residueL
Load residuum.
Definition gsALMBase.h:468
T m_residueU
Displacement residuum.
Definition gsALMBase.h:464
gsVector< T > m_deltaUbar
u_bar
Definition gsALMBase.h:491
T m_indicator
Indicator for bifurcation.
Definition gsALMBase.h:475
Performs the Consistent Crisfield arc length method to solve a nonlinear equation system.
Definition gsALMConsistentCrisfield.h:35
T m_phi
Scaling parameter.
Definition gsALMConsistentCrisfield.h:193
void defaultOptions()
See gsALMBase.
Definition gsALMConsistentCrisfield.hpp:23
void predictor()
See gsALMBase.
Definition gsALMConsistentCrisfield.hpp:102
void initOutput()
See gsALMBase.
Definition gsALMConsistentCrisfield.hpp:198
gsALMConsistentCrisfield(const Jacobian_t &Jacobian, const ALResidual_t &ALResidual, const gsVector< T > &Force)
Constructor.
Definition gsALMConsistentCrisfield.h:60
void stepOutput()
See gsALMBase.
Definition gsALMConsistentCrisfield.hpp:222
gsALMConsistentCrisfield(const dJacobian_t &dJacobian, const ALResidual_t &ALResidual, const gsVector< T > &Force)
Constructor using the jacobian that takes the solution and the solution step.
Definition gsALMConsistentCrisfield.h:72
void iteration()
See gsALMBase.
Definition gsALMConsistentCrisfield.hpp:75
void quasiNewtonPredictor()
See gsALMBase.
Definition gsALMConsistentCrisfield.hpp:55
void initiateStep()
See gsALMBase.
Definition gsALMConsistentCrisfield.hpp:90
void quasiNewtonIteration()
See gsALMBase.
Definition gsALMConsistentCrisfield.hpp:66
void initMethods()
See gsALMBase.
Definition gsALMConsistentCrisfield.hpp:39
void iterationFinish()
See gsALMBase.
Definition gsALMConsistentCrisfield.hpp:181
void getOptions()
See gsALMBase.
Definition gsALMConsistentCrisfield.hpp:30
A vector with arbitrary coefficient type and fixed or dynamic size.
Definition gsVector.h:37
Base class to perform the arc length method to solve a nonlinear equation system.
The G+Smo namespace, containing all definitions for the library.