alg.c File Reference

#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 Documentation

#define PI   3.141592654

Definition at line 102 of file alg.c.

Referenced by AutoGlobalCalc(), ItfMohrCoulombUpdateStress(), MohrCoulombCutOffUpdateStress(), MohrCoulombNACUpdateStress(), MohrCoulombNAVUpdateStress(), MohrCoulombUpdateStress(), and PrincipalTensor().


Function Documentation

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:


Variable Documentation

sConfig Config = { 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0, 0.0, 0.0, 0 }

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().

double delta = 0.0

Definition at line 107 of file alg.c.

eCoupState State = UNCOUPLED

Definition at line 93 of file alg.c.

double* vetError

Definition at line 106 of file alg.c.

Referenced by _ConvergeError(), DRSolver(), HYBRIDSolver(), IMPBFGSSolver(), IMPLINEARSolver(), IMPNRMSolver(), and NeedIteration().


Generated on Fri Oct 5 15:54:20 2007 for ReconMS by  doxygen 1.5.1