#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <time.h>#include "load.h"#include "elm.h"#include "node.h"#include "fem.h"#include "alg.h"#include "nfi.h"#include "rio.h"#include "drv.h"#include "damp.h"#include "constrain.h"#include "csr.h"Include dependency graph for alg.c:

Go to the source code of this file.
Defines | |
| #define | PI 3.141592654 |
Functions | |
| static double | _TimeIncrement (void) |
| static void | _UpdateGeometry (double, double *) |
| static int | _ConvergeError () |
| static double | InitialError (double, double *, double *, double *, double *) |
| double | ComputeError (double *FVector, double *UVector, double error0) |
| void | _dUVector (double *UVector, double *UVector0, double *dUVector) |
| int | NeedIteration (double *error, int *iteration, int stop) |
| int | DRSolver (UI_State *R, double *FVector, double *UVector, double *VVector, double *MVector, int loadstep) |
| int | IMPLINEARSolver (UI_State *R, double *FVector, double *UVector, double *VVector, double *MVector, int loadstep) |
| int | IMPBFGSSolver (UI_State *R, double *FVector, double *UVector, double *VVector, double *MVector, int loadstep) |
| int | IMPNRMSolver (UI_State *R, double *FVector, double *UVector, double *VVector, double *MVector, int loadstep) |
| int | HYBRIDSolver (UI_State *R, double *FVector, double *UVector, double *VVector, double *MVector, int loadstep) |
| void | AlgReset (void) |
Variables | |
| sConfig | Config = { 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0, 0.0, 0.0, 0 } |
| eCoupState | State = UNCOUPLED |
| double * | vetError |
| double | delta = 0.0 |
| #define PI 3.141592654 |
Definition at line 102 of file alg.c.
Referenced by AutoGlobalCalc(), ItfMohrCoulombUpdateStress(), MohrCoulombCutOffUpdateStress(), MohrCoulombNACUpdateStress(), MohrCoulombNAVUpdateStress(), MohrCoulombUpdateStress(), and PrincipalTensor().
| static int _ConvergeError | ( | ) | [static] |
Definition at line 150 of file alg.c.
References Config, _config::numsteptol, _config::tolerance, and vetError.
Referenced by NeedIteration().
Here is the caller graph for this function:

| void _dUVector | ( | double * | UVector, | |
| double * | UVector0, | |||
| double * | dUVector | |||
| ) |
Definition at line 290 of file alg.c.
References NodeVector, and NONE.
Referenced by DRSolver(), and HYBRIDSolver().
Here is the caller graph for this function:

| static double _TimeIncrement | ( | void | ) | [static] |
Definition at line 120 of file alg.c.
References ElmList, ElmTimeStep, NONE, and NumElements.
Referenced by DRSolver(), HYBRIDSolver(), IMPBFGSSolver(), IMPLINEARSolver(), and IMPNRMSolver().
Here is the caller graph for this function:

| static void _UpdateGeometry | ( | double | , | |
| double * | ||||
| ) | [static] |
Definition at line 170 of file alg.c.
References _node::coord, NDof, NodeVector, NumNodes, _coord::y, and _coord::z.
Referenced by DRSolver(), and HYBRIDSolver().
Here is the caller graph for this function:

| void AlgReset | ( | void | ) |
Definition at line 1176 of file alg.c.
References _config::algtype, Config, _config::draw_step, _config::dtfrac, _config::gaussresults, _config::loadfactor, _config::max_iter, _config::nonlinear, _config::num_load_step, _config::num_step, _config::num_time_step, _config::numgaussresults, _config::numsteptol, _config::print_step, _config::solver, _config::timeStep, _config::tolerance, and _config::totalTime.
Referenced by RelaxReset().
Here is the caller graph for this function:

| double ComputeError | ( | double * | FVector, | |
| double * | UVector, | |||
| double | error0 | |||
| ) |
Definition at line 255 of file alg.c.
References NodeVector, and NONE.
Referenced by DRSolver(), and HYBRIDSolver().
Here is the caller graph for this function:

| int DRSolver | ( | UI_State * | R, | |
| double * | FVector, | |||
| double * | UVector, | |||
| double * | VVector, | |||
| double * | MVector, | |||
| int | loadstep | |||
| ) |
Definition at line 360 of file alg.c.
References _count_it, _dUVector(), _fstop, _TimeIncrement(), _UpdateGeometry(), ComputeError(), Config, DampCalcCoeff, DampObj, DisplacementVelocity(), _config::draw_step, DrvObj, DrvPrintResult, _config::dtfrac, InitialError(), InternalForces(), IsCoupled, IsGeomNonLinear, _config::loadfactor, MassVector(), NeedIteration(), _config::num_load_step, _config::numsteptol, PercolationForces(), UIDraw(), UISetDisplacement(), and vetError.
Referenced by LoadCaseAnalysis(), LoadStepAnalysis(), RezoneAnalysis(), StandardAnalysis(), StandardVEAnalysis(), and StandardVEFlacAnalysis().
Here is the call graph for this function:

Here is the caller graph for this function:

| int HYBRIDSolver | ( | UI_State * | R, | |
| double * | FVector, | |||
| double * | UVector, | |||
| double * | VVector, | |||
| double * | MVector, | |||
| int | loadstep | |||
| ) |
Definition at line 957 of file alg.c.
References _count_it, _dUVector(), _fstop, _TimeIncrement(), _UpdateGeometry(), BFGS(), BuildAVector(), BuildIaVec(), BuildJaVec(), BuildNodeList(), ComputeError(), Config, DampCalcCoeff, DampObj, DisplacementVelocity(), _config::draw_step, DrvObj, DrvPrintResult, _config::dtfrac, FreeNodeList(), InitialError(), InternalForces(), IsCoupled, IsGeomNonLinear, _config::loadfactor, MassVector(), _config::max_iter, NeedIteration(), _config::num_load_step, _config::numsteptol, PercolationForces(), _config::solver, _config::tolerance, UIDraw(), UISetDisplacement(), and vetError.
Referenced by HybridAnalysis(), LoadCaseAnalysis(), and LoadStepAnalysis().
Here is the call graph for this function:

Here is the caller graph for this function:

| int IMPBFGSSolver | ( | UI_State * | R, | |
| double * | FVector, | |||
| double * | UVector, | |||
| double * | VVector, | |||
| double * | MVector, | |||
| int | loadstep | |||
| ) |
Definition at line 653 of file alg.c.
References _count_it, _fstop, _TimeIncrement(), BFGS(), BuildAVector(), BuildIaVec(), BuildJaVec(), BuildNodeList(), Config, DrvObj, DrvPrintResult, _config::dtfrac, FreeNodeList(), InitialError(), _config::loadfactor, MassVector(), NeedIteration(), _config::num_load_step, _config::numsteptol, _config::solver, UISetDisplacement(), and vetError.
Referenced by ImpBFGSAnalysis(), LoadCaseAnalysis(), and LoadStepAnalysis().
Here is the call graph for this function:

Here is the caller graph for this function:

| int IMPLINEARSolver | ( | UI_State * | R, | |
| double * | FVector, | |||
| double * | UVector, | |||
| double * | VVector, | |||
| double * | MVector, | |||
| int | loadstep | |||
| ) |
Definition at line 501 of file alg.c.
References _count_it, _fstop, _TimeIncrement(), BuildAVector(), BuildIaVec(), BuildJaVec(), BuildNodeList(), Config, DrvObj, DrvPrintResult, _config::dtfrac, FreeNodeList(), InitialError(), LINEAR(), _config::loadfactor, MassVector(), _config::num_load_step, _config::numsteptol, _config::solver, UISetDisplacement(), and vetError.
Referenced by ImpLinearAnalysis(), LoadCaseAnalysis(), and LoadStepAnalysis().
Here is the call graph for this function:

Here is the caller graph for this function:

| int IMPNRMSolver | ( | UI_State * | R, | |
| double * | FVector, | |||
| double * | UVector, | |||
| double * | VVector, | |||
| double * | MVector, | |||
| int | loadstep | |||
| ) |
Definition at line 805 of file alg.c.
References _count_it, _fstop, _TimeIncrement(), BuildAVector(), BuildIaVec(), BuildJaVec(), BuildNodeList(), Config, DrvObj, DrvPrintResult, _config::dtfrac, FreeNodeList(), InitialError(), _config::loadfactor, MassVector(), NeedIteration(), NRM(), _config::num_load_step, _config::numsteptol, _config::solver, UISetDisplacement(), and vetError.
Referenced by ImpNRMAnalysis(), LoadCaseAnalysis(), and LoadStepAnalysis().
Here is the call graph for this function:

Here is the caller graph for this function:

| static double InitialError | ( | double | , | |
| double * | , | |||
| double * | , | |||
| double * | , | |||
| double * | ||||
| ) | [static] |
Definition at line 187 of file alg.c.
References Config, DISPLACEMENT, _node::dof, _config::loadfactor, NDof, NodeVector, NumNodes, _dof::vpx, _dof::vpy, _dof::vpz, _dof::y, and _dof::z.
Referenced by DRSolver(), HYBRIDSolver(), IMPBFGSSolver(), IMPLINEARSolver(), and IMPNRMSolver().
Here is the caller graph for this function:

| int NeedIteration | ( | double * | error, | |
| int * | iteration, | |||
| int | stop | |||
| ) |
Definition at line 319 of file alg.c.
References _ConvergeError(), Config, _config::max_iter, _config::numsteptol, and vetError.
Referenced by DRSolver(), HYBRIDSolver(), IMPBFGSSolver(), and IMPNRMSolver().
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 87 of file alg.c.
Referenced by _ConvergeError(), _NfiReadAlgorithmType(), _NfiReadDrawStep(), _NfiReadGeometricallyNonLinear(), _NfiReadMaximumIteration(), _NfiReadNumGaussResults(), _NfiReadNumLoadStep(), _NfiReadNumStepTol(), _NfiReadPrintStep(), _NfiReadSolverType(), _NfiReadTimeFraction(), _NfiReadTimeStep(), _NfiReadTolerance(), _NfiReadTotalTime(), _NfiWriteResultStep(), _Q4PoroPressure(), _T3PoroPressure(), AlgReset(), BFGS(), BRICK8StressStrain(), BRICK8WriteGaussResult(), DisplacementVelocity(), DKTWriteGaussResult(), DRSolver(), HybridPrintResult(), HYBRIDSolver(), ImpBFGSPrintResult(), IMPBFGSSolver(), ImpLinearPrintResult(), IMPLINEARSolver(), ImpNRMPrintResult(), IMPNRMSolver(), INFINITEWriteGaussResult(), InitialError(), INTERFACEWriteGaussResult(), InternalForces(), LINEAR(), LoadCaseAnalysis(), LoadStepAnalysis(), NeedIteration(), NfiInterpFile(), NfiWriteResults(), NRM(), Q4WriteGaussResult(), SearchDirection(), SearchDirectionParalelo(), StandardPrintResult(), StandardVEAnalysis(), StandardVEFlacPrintResult(), StandardVEViscoForces(), T3WriteGaussResult(), TETR4StressStrain(), and TETR4WriteGaussResult().
| eCoupState State = UNCOUPLED |
| double* vetError |
Definition at line 106 of file alg.c.
Referenced by _ConvergeError(), DRSolver(), HYBRIDSolver(), IMPBFGSSolver(), IMPLINEARSolver(), IMPNRMSolver(), and NeedIteration().
1.5.1