00001 #ifndef NSSOLVER_H
00002 #define NSSOLVER_H
00003
00004 #include <stdio.h>
00005 struct matrix;
00006 struct vector;
00007 class nonlinman;
00008
00009
00010 void solve_nonlinear_statics ();
00011
00012
00013 void nonlinear_solver (long lcid, double *ra, double *fa, double *fc, double *fp, double *flc, double *flp,
00014 double ilambda, long li);
00015
00016
00017 void assemble_attained_load_vector(double *fa, double *fc, double *fp, long n, double lambda, nonlinman *nlman);
00018
00019
00020 long check_divergency(nonlinman *nlman, matrix &lsm_a, vector &lsm_r, vector &lsm_l, long j, double norf);
00021
00022
00023
00024 void newton_raphson (long lcid);
00025
00026
00027 void displ_control (long lcid);
00028
00029
00030 double displ_controlrv (long lcid, double inilambda, double dmplambda, double rlambda, double errl, long incrdispl);
00031
00032
00033 long arclength (long lcid);
00034
00035 long arclength_old (long lcid,long adaptcontrol);
00036
00037
00038 void seldofinit ();
00039 */
00040
00041
00042 long assemble_stiffness_matrix (long lcid,long i,long j,long li);
00043
00044
00045
00046 void determine_dlambda (double *ddr,double *v,double *ddrprev,long n,double ddlambda,double psi,double norfp,double dl,double &dlambda,long &stop);
00047
00048
00049 void quadeqcoeff (double *ddr,double *v,long n,double ddlambda,double psi,double norfp,double dl,
00050 double &a0,double &a1,double &a2);
00051
00052
00053 double displincr (double *displincr,long n);
00054
00055
00056 double loadincr (double *loadincr,long n);
00057 */
00058
00059
00060 void arclsave (long fi,long n,double blambda,double dl,double *r,double *fp);
00061
00062
00063 void arclopen (long &fi,long &n,double &blambda,double &dl,double *r,double *fp);
00064
00065
00066 void newton_raphson_restart (long lcid);
00067
00068
00069
00070 #endif