fem.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "constrain.h"
#include "load.h"
#include "elm.h"
#include "node.h"
#include "alg.h"
#include "xgplib.h"
#include "fem.h"
#include "csr.h"
#include "pfs.h"

Include dependency graph for fem.c:

Go to the source code of this file.

Defines

#define maxcor   30
#define maxiter   5000
#define cgtol   1.0e-10
#define ngr   10e20

Functions

static void ElmKpr (double *, int *, double *)
static void ElmKp (double *, double *, int *, int *, double *)
static void GCSolver (double *, double *, int *, int *, double *)
static void SearchDirection (int i, int k, double *vector, double **w, double **v, int nna, int nnu, int *ia, int *ja, double *avector)
void BuildAVector (int *ia, int *ja, double *avector)
void BFGS (double dtime, double *F, double *U, double *V, int *iteration, double *error, double error0, int loadstep, int nna, int nnu, int *ia, int *ja, double *avector)
void NRM (double dtime, double *F, double *U, double *V, int *iteration, double *error, double error0, int loadstep, int nna, int nnu, int *ia, int *ja, double *avector)
void LINEAR (double dtime, double *F, double *U, double *V, int *iteration, double *error, double error0, int loadstep, int nna, int nnu, int *ia, int *ja, double *avector)
void InternalForces (double dtime, double *F, double *U, double *V)
int DisplacementVelocity (int iteration, double alpha, double dtime, double *FVector, double *VVector, double *UVector, double *MVector)
void MassVector (double *MVector)
int DoRezone (int step, double *FVector)
void PercolationForces (double *F)


Define Documentation

#define cgtol   1.0e-10

Definition at line 130 of file fem.c.

#define maxcor   30

Definition at line 122 of file fem.c.

#define maxiter   5000

Definition at line 126 of file fem.c.

#define ngr   10e20

Definition at line 134 of file fem.c.


Function Documentation

void BFGS ( double  dtime,
double *  F,
double *  U,
double *  V,
int *  iteration,
double *  error,
double  error0,
int  loadstep,
int  nna,
int  nnu,
int *  ia,
int *  ja,
double *  avector 
)

Definition at line 444 of file fem.c.

References Config, DISPLACEMENT, _node::dof, _config::loadfactor, maxcor, NDof, NodeVector, _dof::vpx, _dof::vpy, _dof::vpz, _dof::y, and _dof::z.

void BuildAVector ( int *  ia,
int *  ja,
double *  avector 
)

Definition at line 395 of file fem.c.

References BuildaVector(), DISPLACEMENT, ElmGetDof, ElmKMatrix, ElmList, NDof, ngr, NodeVector, and NumElements.

Here is the call graph for this function:

int DisplacementVelocity ( int  iteration,
double  alpha,
double  dtime,
double *  FVector,
double *  VVector,
double *  UVector,
double *  MVector 
)

Definition at line 816 of file fem.c.

References Config, ConstList, _node::constrain, ConstSlide, ConstToGlobal, ConstToLocal, _node::coord, _constr::curr_elm, DISPLACEMENT, _node::dof, FORCE, _node::id, _config::loadfactor, NodeVector, NONE, OBJECT, pfs_iter, pfs_node, _node::pilot, VELOCITY, _dof::vpx, _dof::vpy, _dof::vpz, _coord::x, _dof::x, _coord::y, _dof::y, _coord::z, and _dof::z.

int DoRezone ( int  step,
double *  FVector 
)

Definition at line 1066 of file fem.c.

References DONE, ElmConnect, ElmList, ElmNumNodes, NodeVector, NONE, _rezone::numelm, _element::rezone, Rezone, TODO, and UpdatePrescribedValues().

Here is the call graph for this function:

static void ElmKp ( double *  ,
double *  ,
int *  ,
int *  ,
double *   
) [static]

Definition at line 259 of file fem.c.

References NDof, and NumNodes.

static void ElmKpr ( double *  ,
int *  ,
double *   
) [static]

Definition at line 247 of file fem.c.

References NDof, and NumNodes.

static void GCSolver ( double *  ,
double *  ,
int *  ,
int *  ,
double *   
) [static]

Definition at line 276 of file fem.c.

References DISPLACEMENT, ElmKpr(), NDof, ngr, NodeVector, and NumNodes.

Here is the call graph for this function:

void InternalForces ( double  dtime,
double *  F,
double *  U,
double *  V 
)

Definition at line 762 of file fem.c.

References Config, _node::dof, FORCE, _config::loadfactor, NodeVector, NONE, _dof::vpx, _dof::vpy, _dof::vpz, _dof::y, and _dof::z.

void LINEAR ( double  dtime,
double *  F,
double *  U,
double *  V,
int *  iteration,
double *  error,
double  error0,
int  loadstep,
int  nna,
int  nnu,
int *  ia,
int *  ja,
double *  avector 
)

Definition at line 681 of file fem.c.

References Config, DISPLACEMENT, _node::dof, _config::loadfactor, NDof, NodeVector, _dof::vpx, _dof::vpy, _dof::vpz, _dof::y, and _dof::z.

void MassVector ( double *  MVector  ) 

Definition at line 1033 of file fem.c.

References DONE, ElmAssVector, ElmList, and ElmMass.

void NRM ( double  dtime,
double *  F,
double *  U,
double *  V,
int *  iteration,
double *  error,
double  error0,
int  loadstep,
int  nna,
int  nnu,
int *  ia,
int *  ja,
double *  avector 
)

Definition at line 583 of file fem.c.

References Config, DISPLACEMENT, _node::dof, _config::loadfactor, NDof, NodeVector, _dof::vpx, _dof::vpy, _dof::vpz, _dof::y, and _dof::z.

void PercolationForces ( double *  F  ) 

Definition at line 1116 of file fem.c.

References ElmAssVector, ElmList, ElmPercForce, and NONE.

static void SearchDirection ( int  i,
int  k,
double *  vector,
double **  w,
double **  v,
int  nna,
int  nnu,
int *  ia,
int *  ja,
double *  avector 
) [static]

Definition at line 156 of file fem.c.

References Config, GCSolver(), and _config::solver.

Here is the call graph for this function:


Generated on Fri Oct 5 15:55:00 2007 for ReconMS by  doxygen 1.5.1