#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"
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 sConfig::numsteptol, sConfig::tolerance, and vetError.
Referenced by NeedIteration().
void _dUVector | ( | double * | UVector, | |
double * | UVector0, | |||
double * | dUVector | |||
) |
Definition at line 290 of file alg.c.
Referenced by DRSolver(), and HYBRIDSolver().
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().
static void _UpdateGeometry | ( | double | dtime, | |
double * | VVector | |||
) | [static] |
Definition at line 170 of file alg.c.
References sNode::coord, NDof, NodeVector, NumNodes, sCoord::x, sCoord::y, and sCoord::z.
Referenced by DRSolver(), and HYBRIDSolver().
void AlgReset | ( | void | ) |
Definition at line 1176 of file alg.c.
Referenced by RelaxReset().
double ComputeError | ( | double * | FVector, | |
double * | UVector, | |||
double | error0 | |||
) |
Definition at line 255 of file alg.c.
Referenced by BFGS(), DRSolver(), HYBRIDSolver(), LINEAR(), and NRM().
int DRSolver | ( | UI_State * | R, | |
double * | FVector, | |||
double * | UVector, | |||
double * | VVector, | |||
double * | MVector, | |||
int | loadstep | |||
) |
Definition at line 360 of file alg.c.
Referenced by LoadCaseAnalysis(), LoadStepAnalysis(), RezoneAnalysis(), StandardAnalysis(), StandardVEAnalysis(), and StandardVEFlacAnalysis().
int HYBRIDSolver | ( | UI_State * | R, | |
double * | FVector, | |||
double * | UVector, | |||
double * | VVector, | |||
double * | MVector, | |||
int | loadstep | |||
) |
Definition at line 957 of file alg.c.
Referenced by HybridAnalysis(), LoadCaseAnalysis(), and LoadStepAnalysis().
int IMPBFGSSolver | ( | UI_State * | R, | |
double * | FVector, | |||
double * | UVector, | |||
double * | VVector, | |||
double * | MVector, | |||
int | loadstep | |||
) |
Definition at line 653 of file alg.c.
Referenced by ImpBFGSAnalysis(), LoadCaseAnalysis(), and LoadStepAnalysis().
int IMPLINEARSolver | ( | UI_State * | R, | |
double * | FVector, | |||
double * | UVector, | |||
double * | VVector, | |||
double * | MVector, | |||
int | loadstep | |||
) |
Definition at line 501 of file alg.c.
Referenced by ImpLinearAnalysis(), LoadCaseAnalysis(), and LoadStepAnalysis().
int IMPNRMSolver | ( | UI_State * | R, | |
double * | FVector, | |||
double * | UVector, | |||
double * | VVector, | |||
double * | MVector, | |||
int | loadstep | |||
) |
Definition at line 805 of file alg.c.
Referenced by ImpNRMAnalysis(), LoadCaseAnalysis(), and LoadStepAnalysis().
static double InitialError | ( | double | dtime, | |
double * | F, | |||
double * | U, | |||
double * | V, | |||
double * | U0 | |||
) | [static] |
Definition at line 187 of file alg.c.
References DISPLACEMENT, sNode::dof, InternalForces(), sConfig::loadfactor, NDof, NodeVector, NONE, NumNodes, sDof::vpx, sDof::vpy, sDof::vpz, sDof::x, sDof::y, and sDof::z.
Referenced by DRSolver(), HYBRIDSolver(), IMPBFGSSolver(), IMPLINEARSolver(), and IMPNRMSolver().
int NeedIteration | ( | double * | error, | |
int * | iteration, | |||
int | stop | |||
) |
Definition at line 319 of file alg.c.
Referenced by BFGS(), DRSolver(), HYBRIDSolver(), IMPBFGSSolver(), IMPNRMSolver(), and NRM().
Definition at line 87 of file alg.c.
Referenced by _NfiReadAlgorithmType(), _NfiReadDrawStep(), _NfiReadGeometricallyNonLinear(), _NfiReadMaximumIteration(), _NfiReadNumGaussResults(), _NfiReadNumLoadStep(), _NfiReadNumStepTol(), _NfiReadPrintStep(), _NfiReadSolverType(), _NfiReadTimeFraction(), _NfiReadTimeStep(), _NfiReadTolerance(), _NfiReadTotalTime(), _NfiWriteResultStep(), _Q4PoroPressure(), _T3PoroPressure(), BFGS(), BRICK8StressStrain(), BRICK8WriteGaussResult(), DisplacementVelocity(), DKTWriteGaussResult(), HybridPrintResult(), ImpBFGSPrintResult(), ImpLinearPrintResult(), ImpNRMPrintResult(), INFINITEWriteGaussResult(), INTERFACEWriteGaussResult(), InternalForces(), LINEAR(), LoadCaseAnalysis(), LoadStepAnalysis(), NfiInterpFile(), NfiWriteResults(), NRM(), Q4WriteGaussResult(), SearchDirection(), 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().