143struct GISMO_EXPORT gsBoundaryInterface
145 gsBoundaryInterface() {}
148 std::vector<patchSide> sidesA;
149 std::vector<patchSide> sidesB;
151 std::vector<std::pair<index_t,index_t> > patches;
154 void addInterfaceSide(
index_t patchA, boundary::side sideA,
155 index_t patchB, boundary::side sideB)
157 sidesA.push_back(patchSide(patchA,sideA));
158 sidesB.push_back(patchSide(patchB,sideB));
162 { patches.push_back(std::pair<index_t,index_t>(patchA,patchB)); }
180 GISMO_ENSURE(progress >= 0. && progress <= 1.,
"Invalid progress value! Must be between 0 and 1.");
183 for(
index_t i = 0; i < m_width; i++)
186 else if(i == threshold)
190 gsInfo <<
"] " << (abs(progress - 1.) < 1e-12 ? 100 : (
index_t)(progress*100)) <<
" %\r";
193 if (abs(progress - 1.) < 1e-12)
200 GISMO_ENSURE(progress >= 0 && progress <= total && total >= 0,
"Invalid progress value!");
203 for(
index_t i = 0; i < m_width; i++)
206 else if(i == threshold)
210 gsInfo <<
"] " << progress <<
"/" << total <<
" \r";
213 if (progress == total)
222std::string secToHMS(T sec)
230 residual -= 3600*hours;
232 residual -= 60*minutes;
Simple progress bar class.
Definition gsBaseUtils.h:172
void display(double progress)
display the progress from 0 to 1
Definition gsBaseUtils.h:178
gsProgressBar(index_t width=25)
Constructor. Width is a number of symbols the progress bar spans.
Definition gsBaseUtils.h:175
void display(index_t progress, index_t total)
display the progress from 0 to 1
Definition gsBaseUtils.h:198
std::string to_string(const C &value)
Converts value to string, assuming "operator<<" defined on C.
Definition gsUtils.h:56
Provides structs and classes related to interfaces and boundaries.
Provides preprocessor directives configuration of G+Smo.
#define index_t
Definition gsConfig.h:32
This file contains the debugging and messaging system of G+Smo.
#define GISMO_ENSURE(cond, message)
Definition gsDebug.h:102
#define gsInfo
Definition gsDebug.h:43
Several utility functions for miscellaneous tasks.
The G+Smo namespace, containing all definitions for the library.
solver_status
Specifies the status of the iterative solver.
Definition gsBaseUtils.h:99
@ interrupted
method successfully converged
Definition gsBaseUtils.h:100
@ working
solver was interrupted after exceeding the limit of iterations
Definition gsBaseUtils.h:101
@ bad_solution
solver working
Definition gsBaseUtils.h:102
Specifies method used for mesh deformation in fluid-structure interaction.
Definition gsBaseUtils.h:27
method
Definition gsBaseUtils.h:29
@ IBHE
bi-harmonic extension
Definition gsBaseUtils.h:37
@ LE
incremental harmonic extension
Definition gsBaseUtils.h:32
@ TINE
incremental linear elasticity
Definition gsBaseUtils.h:34
@ TINE_StVK
tangential incremental nonlinear elasticity (with the neo-Hookean law)
Definition gsBaseUtils.h:35
@ BHE
tangential incremental nonlinear elasticity (with the St.Venant-Kirchhoff law)
Definition gsBaseUtils.h:36
@ ILE
linear elasticity
Definition gsBaseUtils.h:33
@ IHE
harmonic extension
Definition gsBaseUtils.h:31
@briefly Specifies iteration type for an iterative solver
Definition gsBaseUtils.h:90
type
Definition gsBaseUtils.h:92
@ next
each iteration yields an update
Definition gsBaseUtils.h:94
Specifies linear solver to use if it is hidden within some other class (like Newton's method or time ...
Definition gsBaseUtils.h:66
solver
Definition gsBaseUtils.h:68
@ BiCGSTABDiagonal
Conjugate gradient solver with diagonal (a.k.a. Jacobi) preconditioning: iterative(!...
Definition gsBaseUtils.h:72
@ LDLT
LU decomposition: direct, no matrix requirements, robust but a bit slow, Eigen and Pardiso available.
Definition gsBaseUtils.h:70
@ CGDiagonal
Cholesky decomposition pivoting: direct, simmetric positive or negative semidefinite,...
Definition gsBaseUtils.h:71
Specifies the material law to use.
Definition gsBaseUtils.h:127
law
Definition gsBaseUtils.h:129
@ mixed_neo_hooke_ln
S = lambda/2*(J^2-1)C^-1 + mu*(I-C^-1)
Definition gsBaseUtils.h:135
@ neo_hooke_quad
S = lambda*ln(J)*C^-1 + mu*(I-C^-1)
Definition gsBaseUtils.h:134
@ neo_hooke_ln
S = 2*mu*E + lambda*tr(E)*I.
Definition gsBaseUtils.h:133
@ saint_venant_kirchhoff
sigma = 2*mu*eps + lambda*tr(eps)*I
Definition gsBaseUtils.h:132
@ muscle
S = p*C^-1 + mu*(I-C^-1)
Definition gsBaseUtils.h:136
@ hooke
sigma = 2*mu*eps + p*I
Definition gsBaseUtils.h:131
Specifies the iteration type used to solve nonlinear systems.
Definition gsBaseUtils.h:43
type
Definition gsBaseUtils.h:45
@ newton_next
newton's method, 2nd order, yields updates to the solution
Definition gsBaseUtils.h:48
@ newton_update
stationary point iteration, 1st order, yields a new solution at each iteration
Definition gsBaseUtils.h:47
Specifies the verbosity of the iterative solver.
Definition gsBaseUtils.h:79
verbosity
Definition gsBaseUtils.h:81
@ some
no output
Definition gsBaseUtils.h:83
@ all
only essential output
Definition gsBaseUtils.h:84
method was interrupted because the current solution is invalid
Definition gsBaseUtils.h:110
components
Definition gsBaseUtils.h:112
@ normal_3D_vector
return all components of the 2D stress tensor as a 2x2 matrix
Definition gsBaseUtils.h:117
@ shear_3D_vector
Definition gsBaseUtils.h:119
@ all_3D_matrix
Definition gsBaseUtils.h:121
@ all_2D_vector
return von Mises stress as a scala
Definition gsBaseUtils.h:114
@ all_2D_matrix
Definition gsBaseUtils.h:116
Specifies the time integration scheme, see Wriggers, Nonlinear FEM, p. 205.
Definition gsBaseUtils.h:54
scheme
Definition gsBaseUtils.h:56
@ implicit_nonlinear
implicit scheme with linear problem (theta-scheme)
Definition gsBaseUtils.h:60
@ explicit_lumped
explicit scheme
Definition gsBaseUtils.h:58
@ implicit_linear
explicit scheme with lumped mass matrix
Definition gsBaseUtils.h:59