29 #define XALM_RESET_STEP_REDUCE 0.25
30 #define XALM_MAX_RESTARTS 4
31 #define XALM_DEFAULT_NRM_TICKS 2
32 #define XALM_MAX_REL_ERROR_BOUND 1.e10
34 #define XALM_SMALL_NUM 1.e-20
35 #define XALM_SMALL_ERROR_NUM 1.e-6
102 int computeDeltaLambda (
double &deltaLambda,
const Dvctr &dX,
const Dvctr &deltaXt,
103 const Dvctr &deltaX_,
const Dvctr &R,
double RR,
double eta,
104 double deltaL,
double DeltaLambda0,
int neq);
111 void initialize_and_check_consistency (
void);
114 double Lambda,
double RR0,
double RR,
double drProduct,
int nite,
bool &errorOutOfRange);
185 virtual void initialize (
void) = 0;
189 virtual void update_step (
void) = 0;
192 virtual void update_stiffness_matrix (
const Dvctr *X) = 0;
194 virtual void update_internal_forces (
Dvctr *internalForces,
const Dvctr *X) = 0;
196 virtual void lineq_solve (
Dvctr *X,
const Dvctr *R) = 0;
xalm_ControlType
XALM mody; urcuji typ kontroly delky kroku.
int xalm_NR_ModeTick
Počet kroků zbývajících do konce dočasné změny iteračního schématu.
double minStepLength
Minimalní délka kroku.
int nsMin
Minimální počet kroků dorovnání nerovnováhy v jednom iteračním přitěžovacím kroku.
Linearized ALM (only displacements), taking into account only selected dofs with given weight...
int verbose
Pokud je větší než nule - budou vypisovány informace.
int nsReq
Požadovaný počet kroků dorovnání nerovnováhy v jednom iteračním přitěžovacím kroku.
Modifikovaná NR metoda (defaultní hodnota) - matice se počítá jen na začátku každého zatěžovacího kro...
Dvctr initialLoadVector
Vektor pocatecniho zatizeni, nemeni se behem vypoctu, je aplikovan cely.
Lvctr xalm_HPCIndirectDofMask
Dvctr totalDisplacement
Vektor celkových posunutí.
Dvctr incrementOfDisplacement
Vektor přírůstku posunutí.
xalm_NR_ModeType xalm_NR_OldMode
Záloha proměnné xalm_NR_Mode.
Structs Elem3D, PoinT and VectoR; classes Array, Array1d, Xscal, Dscal, Xvctr, Lvctr, Dvctr, Xmtrx, Lmtrx and Dmtrx.
long nsteps
Počet zatěžovacích kroků.
const double * give_totalDisplacement(void) const
Funkce vrátí konstantní ukazatel na vektor celkových posunů.
double rtold
Tolerance relativní chyby nevyrovnaných posunů.
double Psi
Parametr kontroly kroku. Pokud je rovno 0, tak se jedná o kontrolu přírůstkem posunutí, pokud je rovno nekonečnu, tak se jedná o kontrolu přírůstkem zatížení.
double rtolf
Tolerance relativní chyby nevyrovnaných sil.
int nsMax
Maximální počet kroků dorovnání nerovnováhy v jednom iteračním přitěžovacím kroku.
double maxStepLength
Maximalní délka kroku.
Full ALM with quadratic constrain and all dofs.
Dvctr incrementalLoadVector
Vektor prirustkoveho zatizeni, meni se se stupnem lambda.
xalm_NR_ModeType xalm_NR_Mode
Proměnná určující strategii, kdy se bude počítat tečná matice tuhosti soustavy.
int give_step(void)
Funkce vrací číslo aktuálního zatěžovacího kroku.
double give_loadLevel(void) const
Funkce vrátí loadLevel - dosažený stupeň přírůstkového zatížení.
double initialStepLength
Počáteční délka kroku.
Plná NR metoda - matice se během zatěžovacího kroku počítá při každé iteraci.
Dvctr xalm_HPCDmanWeightSrcArray
Input array containing dofmanagers and corresponding dof numbers under indirect control.
int status
0 - nedopočítáno, 1- spočítáno, 2 - počítáno s problémy, změněn krok
Lvctr xalm_HPCDmanDofSrcArray
Array containing equation numbers of dofs under indirect control.
Hlavní, a jedíná, třída knihovny XALM.
double loadLevel
Dosažený stupeň přírůstkového zatížení.
xalm_NR_ModeType
Strategie výpočtu matice tuhosti, převzato z Newton-Raphson metody iteračního výpočtu.
Akcelerovaná NR metoda - matice se počítá jen na začátku každého n-tého zatěžovacího kroku...
Dvctr internalForces
Vektor vnitřních sil v uzlech.
Full ALM with quadratic constrain, taking into account only selected dofs.
int xalm_MANRMSteps
Počet kroků, po kterých se má znovu počítat matice, pouze pokud xalm_NR_Mode == xalm_accelNRM.
long neq
Pocet rovnic v matici soustavy = pocet neznamych.
xalm_ControlType xalm_Control