XALM  1.0
 Vše Třídy Prostory jmen Soubory Funkce Proměnné Výčty Hodnoty výčtu Friends Definice maker
Seznam všech členů
Dokumentace třídy xalm::XALMabstract

Hlavní, a jedíná, třída knihovny XALM. ...

#include <xalm.h>

Diagram dědičnosti pro třídu xalm::XALM
xalm::XALM_interface

Veřejné metody

Veřejné metody slouží pro spuštění výpočtu a pro předávání výsledků uživatelovi.

 XALM (void)
 Constructor. ...
 
virtual ~XALM (void)
 Destructor. ...
 
int solve (void)
 Funkce solve je hlavní, a jediná, výkonná funkce knihovny XALM. ...
 
const double * give_totalDisplacement (void) const
 Funkce vrátí konstantní ukazatel na vektor celkových posunů. ...
 
double give_loadLevel (void) const
 Funkce vrátí loadLevel - dosažený stupeň přírůstkového zatížení. ...
 

Soukromé metody a atributy

Soukromé metody a atributy nejsou přístupné pro používání z vnějšku třídy ani z třídy zděděné a slouží pro vlastní výpočet.

Pokud jsou soukromé atributy ve zděděné třídě potřebné, přistupuje se k nim pomocí chráněných metod.

int step
 Aktuální krok. ...
 
double loadLevel
 Dosažený stupeň přírůstkového zatížení. ...
 
Dvctr totalDisplacement
 Vektor celkových posunutí. ...
 
Dvctr incrementOfDisplacement
 Vektor přírůstku posunutí. ...
 
Dvctr internalForces
 Vektor vnitřních sil v uzlech. ...
 
int status
 0 - nedopočítáno, 1- spočítáno, 2 - počítáno s problémy, změněn krok ...
 
xalm_NR_ModeType xalm_NR_OldMode
 Záloha proměnné xalm_NR_Mode. ...
 
int xalm_NR_ModeTick
 Počet kroků zbývajících do konce dočasné změny iteračního schématu. ...
 
xalm_ControlType xalm_Control
 
Dvctr xalm_HPCWeights
 
Lvctr xalm_HPCIndirectDofMask
 
Lvctr xalm_HPCDmanDofSrcArray
 Array containing equation numbers of dofs under indirect control. ...
 
Dvctr xalm_HPCDmanWeightSrcArray
 Input array containing dofmanagers and corresponding dof numbers under indirect control. ...
 
int computeDeltaLambda (double &deltaLambda, const Dvctr &dX, const Dvctr &deltaXt, const Dvctr &deltaX_, const Dvctr &R, double RR, double eta, double deltaL, double DeltaLambda0, int neq)
 
void solve_step (Dvctr *R, Dvctr *R0, Dvctr *X, Dvctr *dX, Dvctr *F, long step)
 R - incrementalLoadVector R0 - initialLoadVector. ...
 
void initialize_and_check_consistency (void)
 Funkce pro nastavení soukromých atributů a kontrolu konzistence zadání. ...
 
bool checkConvergence (const Dvctr &R, const Dvctr *R0, const Dvctr &F, const Dvctr &X, const Dvctr &ddX, double Lambda, double RR0, double RR, double drProduct, int nite, bool &errorOutOfRange)
 Kontrola konvergence. ...
 

Chráněné metody a atributy

Input array of dofman weights (for hpcmode 2).

Chráněné metody a atributy slouží pro zadávání počátečních požadavků na výpočet a pro předávání potřebných dat mezi MKP programem a knihovnou XALM během vlastního iteračního výpočtu.

V třídě XALM jsou proto metody deklarovány jako čistě virtuální (pure virtual) a definovány jsou až v třídě zděděné. Je zřejmé, že metody jsou implementačně závislé. Proto zděděná třída nemůže být součástí knihovny XALM, ale musí být vytvořena pro každou implementaci zvlášť a je její součástí. Tvoří tak fakticky "rozhraní" popisované v druhé kapitole.

xalm_NR_ModeType xalm_NR_Mode
 Proměnná určující strategii, kdy se bude počítat tečná matice tuhosti soustavy. ...
 
int xalm_MANRMSteps
 Počet kroků, po kterých se má znovu počítat matice, pouze pokud xalm_NR_Mode == xalm_accelNRM. ...
 
long nsteps
 Počet zatěžovacích kroků. ...
 
double minStepLength
 Minimalní délka kroku. ...
 
double maxStepLength
 Maximalní délka kroku. ...
 
double initialStepLength
 Počáteční délka kroku. ...
 
int nsMin
 Minimální počet kroků dorovnání nerovnováhy v jednom iteračním přitěžovacím kroku. ...
 
int nsReq
 Požadovaný počet kroků dorovnání nerovnováhy v jednom iteračním přitěžovacím kroku. ...
 
int nsMax
 Maximální počet kroků dorovnání nerovnováhy v jednom iteračním přitěžovacím kroku. ...
 
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í. ...
 
int verbose
 Pokud je větší než nule - budou vypisovány informace. ...
 
double rtolf
 Tolerance relativní chyby nevyrovnaných sil. ...
 
double rtold
 Tolerance relativní chyby nevyrovnaných posunů. ...
 
long neq
 Pocet rovnic v matici soustavy = pocet neznamych. ...
 
Dvctr incrementalLoadVector
 Vektor prirustkoveho zatizeni, meni se se stupnem lambda. ...
 
Dvctr initialLoadVector
 Vektor pocatecniho zatizeni, nemeni se behem vypoctu, je aplikovan cely. ...
 
int give_step (void)
 Funkce vrací číslo aktuálního zatěžovacího kroku. ...
 
virtual void initialize (void)=0
 Funkce nemá parametry a nic nevrací. ...
 
virtual void update_step (void)=0
 Ve funkci je možné po každém provedeném iteračním kroku vykonat požadované úkony. ...
 
virtual void update_stiffness_matrix (const Dvctr *X)=0
 
virtual void update_internal_forces (Dvctr *internalForces, const Dvctr *X)=0
 
virtual void lineq_solve (Dvctr *X, const Dvctr *R)=0
 

Detailní popis

Hlavní, a jedíná, třída knihovny XALM.

EXternal cylindrical Arc-Length Method algorithm.

Perform solution of non-linear problem in the form Kt * deltaR = g where g is defined as g = g(Lambda,X) = Lambda* R - F(X). During iteration process, we want g became zero vector.

Definice je uvedena na řádku 50 v souboru xalm.h.

Dokumentace konstruktoru a destruktoru

xalm::XALM::XALM ( void  )
xalm::XALM::~XALM ( void  )
virtual

Destructor.

Definice je uvedena na řádku 44 v souboru xalm.cpp.

Dokumentace k metodám

bool xalm::XALM::checkConvergence ( const Dvctr R,
const Dvctr R0,
const Dvctr F,
const Dvctr X,
const Dvctr ddX,
double  Lambda,
double  RR0,
double  RR,
double  drProduct,
int  nite,
bool &  errorOutOfRange 
)
private
int xalm::XALM::computeDeltaLambda ( double &  deltaLambda,
const Dvctr dX,
const Dvctr deltaXt,
const Dvctr deltaX_,
const Dvctr R,
double  RR,
double  eta,
double  deltaL,
double  DeltaLambda0,
int  neq 
)
private
double xalm::XALM::give_loadLevel ( void  ) const
inline

Funkce vrátí loadLevel - dosažený stupeň přírůstkového zatížení.

Definice je uvedena na řádku 75 v souboru xalm.h.

Používá se v xalm::XALM_interface::update_step().

int xalm::XALM::give_step ( void  )
inlineprotected

Funkce vrací číslo aktuálního zatěžovacího kroku.

Definice je uvedena na řádku 178 v souboru xalm.h.

Používá se v xalm::XALM_interface::update_step() a xalm::XALM_interface::update_stiffness_matrix().

const double* xalm::XALM::give_totalDisplacement ( void  ) const
inline

Funkce vrátí konstantní ukazatel na vektor celkových posunů.

Definice je uvedena na řádku 73 v souboru xalm.h.

Používá se v xalm::XALM_interface::update_step().

virtual void xalm::XALM::initialize ( void  )
protectedpure virtual

Funkce nemá parametry a nic nevrací.

Má za úkol inicializovat chráněné atributy. Atributy typu ukazatel na pole musí být alokovány uvnitř této funkce. Dealokovány jsou v destruktoru třídy XALM.

Implementováno v xalm::XALM_interface.

Používá se v solve().

void xalm::XALM::initialize_and_check_consistency ( void  )
private

Funkce pro nastavení soukromých atributů a kontrolu konzistence zadání.

Definice je uvedena na řádku 54 v souboru xalm.cpp.

Odkazuje se na _errorr, incrementOfDisplacement, internalForces, neq, gelibspace::Dvctr::resize_ignore_vals(), totalDisplacement, xalm_NR_Mode, xalm_NR_OldMode a gelibspace::Dvctr::zero().

Používá se v solve().

virtual void xalm::XALM::lineq_solve ( Dvctr X,
const Dvctr R 
)
protectedpure virtual

Implementováno v xalm::XALM_interface.

Používá se v solve_step().

int xalm::XALM::solve ( void  )

Funkce solve je hlavní, a jediná, výkonná funkce knihovny XALM.

Definice je uvedena na řádku 76 v souboru xalm.cpp.

Odkazuje se na incrementalLoadVector, incrementOfDisplacement, initialize(), initialize_and_check_consistency(), initialLoadVector, internalForces, nsteps, solve_step(), status, step, totalDisplacement a update_step().

Používá se v main().

void xalm::XALM::solve_step ( Dvctr R,
Dvctr R0,
Dvctr X,
Dvctr dX,
Dvctr F,
long  step 
)
private
virtual void xalm::XALM::update_internal_forces ( Dvctr internalForces,
const Dvctr X 
)
protectedpure virtual

Implementováno v xalm::XALM_interface.

Používá se v solve_step().

virtual void xalm::XALM::update_step ( void  )
protectedpure virtual

Ve funkci je možné po každém provedeném iteračním kroku vykonat požadované úkony.

Např. vypsat aktuání hodnoty, zastavit iteraci, pokud je dosaženo požadovaných výsledků, atd.

Implementováno v xalm::XALM_interface.

Používá se v solve().

virtual void xalm::XALM::update_stiffness_matrix ( const Dvctr X)
protectedpure virtual

Implementováno v xalm::XALM_interface.

Používá se v solve_step().

Dokumentace k datovým členům

Dvctr xalm::XALM::incrementalLoadVector
protected

Vektor prirustkoveho zatizeni, meni se se stupnem lambda.

Definice je uvedena na řádku 170 v souboru xalm.h.

Používá se v xalm::XALM_interface::initialize_local() a solve().

Dvctr xalm::XALM::incrementOfDisplacement
private

Vektor přírůstku posunutí.

Definice je uvedena na řádku 95 v souboru xalm.h.

Používá se v initialize_and_check_consistency() a solve().

Dvctr xalm::XALM::initialLoadVector
protected

Vektor pocatecniho zatizeni, nemeni se behem vypoctu, je aplikovan cely.

Definice je uvedena na řádku 171 v souboru xalm.h.

Používá se v xalm::XALM_interface::initialize_local() a solve().

double xalm::XALM::initialStepLength
protected

Počáteční délka kroku.

Definice je uvedena na řádku 158 v souboru xalm.h.

Používá se v xalm::XALM_interface::initialize(), solve_step() a XALM().

Dvctr xalm::XALM::internalForces
private

Vektor vnitřních sil v uzlech.

Definice je uvedena na řádku 96 v souboru xalm.h.

Používá se v initialize_and_check_consistency(), solve() a solve_step().

double xalm::XALM::loadLevel
private

Dosažený stupeň přírůstkového zatížení.

Definice je uvedena na řádku 93 v souboru xalm.h.

Používá se v solve_step() a XALM().

double xalm::XALM::maxStepLength
protected

Maximalní délka kroku.

Definice je uvedena na řádku 157 v souboru xalm.h.

Používá se v xalm::XALM_interface::initialize(), solve_step() a XALM().

double xalm::XALM::minStepLength
protected

Minimalní délka kroku.

Definice je uvedena na řádku 156 v souboru xalm.h.

Používá se v xalm::XALM_interface::initialize(), solve_step() a XALM().

long xalm::XALM::neq
protected

Pocet rovnic v matici soustavy = pocet neznamych.

Definice je uvedena na řádku 169 v souboru xalm.h.

Používá se v xalm::XALM_interface::initialize(), initialize_and_check_consistency(), xalm::XALM_interface::initialize_local(), xalm::XALM_interface::mtlb(), solve_step() a XALM().

int xalm::XALM::nsMax
protected

Maximální počet kroků dorovnání nerovnováhy v jednom iteračním přitěžovacím kroku.

Definice je uvedena na řádku 161 v souboru xalm.h.

Používá se v solve_step() a XALM().

int xalm::XALM::nsMin
protected

Minimální počet kroků dorovnání nerovnováhy v jednom iteračním přitěžovacím kroku.

Definice je uvedena na řádku 159 v souboru xalm.h.

Používá se v solve_step() a XALM().

int xalm::XALM::nsReq
protected

Požadovaný počet kroků dorovnání nerovnováhy v jednom iteračním přitěžovacím kroku.

Definice je uvedena na řádku 160 v souboru xalm.h.

Používá se v solve_step() a XALM().

long xalm::XALM::nsteps
protected

Počet zatěžovacích kroků.

Definice je uvedena na řádku 155 v souboru xalm.h.

Používá se v xalm::XALM_interface::initialize(), xalm::XALM_interface::initialize_local(), solve(), xalm::XALM_interface::update_step() a XALM().

double xalm::XALM::Psi
protected

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í.

Definice je uvedena na řádku 162 v souboru xalm.h.

Používá se v computeDeltaLambda(), xalm::XALM_interface::initialize(), solve_step() a XALM().

double xalm::XALM::rtold
protected

Tolerance relativní chyby nevyrovnaných posunů.

Definice je uvedena na řádku 165 v souboru xalm.h.

Používá se v checkConvergence(), xalm::XALM_interface::initialize() a XALM().

double xalm::XALM::rtolf
protected

Tolerance relativní chyby nevyrovnaných sil.

Definice je uvedena na řádku 164 v souboru xalm.h.

Používá se v checkConvergence(), xalm::XALM_interface::initialize() a XALM().

int xalm::XALM::status
private

0 - nedopočítáno, 1- spočítáno, 2 - počítáno s problémy, změněn krok

Definice je uvedena na řádku 97 v souboru xalm.h.

Používá se v computeDeltaLambda(), solve(), solve_step() a XALM().

int xalm::XALM::step
private

Aktuální krok.

Definice je uvedena na řádku 92 v souboru xalm.h.

Používá se v solve(), xalm::XALM_interface::update_step() a XALM().

Dvctr xalm::XALM::totalDisplacement
private

Vektor celkových posunutí.

Definice je uvedena na řádku 94 v souboru xalm.h.

Používá se v initialize_and_check_consistency(), solve() a solve_step().

int xalm::XALM::verbose
protected

Pokud je větší než nule - budou vypisovány informace.

Definice je uvedena na řádku 163 v souboru xalm.h.

Používá se v checkConvergence(), computeDeltaLambda(), solve_step() a XALM().

xalm_ControlType xalm::XALM::xalm_Control
private

Definice je uvedena na řádku 120 v souboru xalm.h.

Používá se v computeDeltaLambda(), solve_step() a XALM().

Lvctr xalm::XALM::xalm_HPCDmanDofSrcArray
private

Array containing equation numbers of dofs under indirect control.

Definice je uvedena na řádku 123 v souboru xalm.h.

Dvctr xalm::XALM::xalm_HPCDmanWeightSrcArray
private

Input array containing dofmanagers and corresponding dof numbers under indirect control.

Definice je uvedena na řádku 124 v souboru xalm.h.

Lvctr xalm::XALM::xalm_HPCIndirectDofMask
private

Definice je uvedena na řádku 122 v souboru xalm.h.

Používá se v computeDeltaLambda() a solve_step().

Dvctr xalm::XALM::xalm_HPCWeights
private

Definice je uvedena na řádku 121 v souboru xalm.h.

Používá se v computeDeltaLambda() a solve_step().

int xalm::XALM::xalm_MANRMSteps
protected

Počet kroků, po kterých se má znovu počítat matice, pouze pokud xalm_NR_Mode == xalm_accelNRM.

Definice je uvedena na řádku 154 v souboru xalm.h.

Používá se v solve_step() a XALM().

xalm_NR_ModeType xalm::XALM::xalm_NR_Mode
protected

Proměnná určující strategii, kdy se bude počítat tečná matice tuhosti soustavy.

Definice je uvedena na řádku 153 v souboru xalm.h.

Používá se v initialize_and_check_consistency(), solve_step() a XALM().

int xalm::XALM::xalm_NR_ModeTick
private

Počet kroků zbývajících do konce dočasné změny iteračního schématu.

Definice je uvedena na řádku 99 v souboru xalm.h.

Používá se v solve_step() a XALM().

xalm_NR_ModeType xalm::XALM::xalm_NR_OldMode
private

Záloha proměnné xalm_NR_Mode.

Definice je uvedena na řádku 98 v souboru xalm.h.

Používá se v initialize_and_check_consistency(), solve_step() a XALM().


Dokumentace pro tuto třídu byla generována z následujících souborů: