00001 #ifndef NONLINMANT_H 00002 #define NONLINMANT_H 00003 00004 #include <stdio.h> 00005 #include "aliast.h" 00006 #include "galias.h" 00007 #include "iotools.h" 00008 00009 /** 00010 class nonlinmant defines type of solver of systems of nonlinear algebraic equations 00011 00012 JK, 18.10.2007 00013 */ 00014 00015 class nonlinmant 00016 { 00017 public: 00018 00019 nonlinmant (void); 00020 ~nonlinmant (void); 00021 void read (XFILE *in,long mespr); 00022 void print (FILE *out); 00023 00024 /* 00025 void read_selnod (XFILE *in); 00026 void read_seldof (XFILE *in); 00027 void read_seldofcoord (XFILE *in); 00028 void print_selnod (FILE *out); 00029 void print_seldof (FILE *out); 00030 void print_seldofcoord (FILE *out); 00031 00032 void initiate (nonlinman &nm); 00033 */ 00034 00035 /// type of solver of nonlinear algebraic equation system 00036 nlsolvertype tnlinsol; 00037 00038 /* 00039 // ARC-LENGTH METHOD 00040 /// norm measure of displacement increments 00041 displacementnorm displnorm; 00042 /// hard-disc backup 00043 long hdbackupal; 00044 /// maximum number of increments 00045 long nial; 00046 /// maximum number of iterations in inner loop 00047 /// maximum number of iterations in one increment 00048 long niilal; 00049 /// required norm of vector of unbalanced forces 00050 double erral; 00051 /// length of arc 00052 double dlal; 00053 /// minimum length of arc 00054 double dlminal; 00055 /// maximum length of arc 00056 double dlmaxal; 00057 /// displacement-loading driving switch 00058 double psial; 00059 /// number of selected nodes (for norm computation) 00060 long nsnal; 00061 /// selected nodes (for norm computations) 00062 long *selnodal; 00063 /// number of selected DOFs (for norm computation) 00064 long nsdofal; 00065 /// selected degrees of freedom 00066 long *seldofal; 00067 /// coordinates of selected nodes 00068 double *selnodcoord; 00069 /// problem dimension (for increment of two node distance) 00070 long probdimal; 00071 /// unit vector between selected nodes 00072 double nxal,nyal,nzal; 00073 */ 00074 00075 // NEWTON-RAPHSON METHOD 00076 /// maximum number of increments 00077 long ninr; 00078 /// maximum number of iterations in inner loop 00079 /// maximum number of iterations in one increment 00080 long niilnr; 00081 /// required norm of vector of unbalanced forces 00082 double errnr; 00083 /// magnitude of increment of loading 00084 double incrnr; 00085 /// minimum magnitude of increment of loading 00086 double minincrnr; 00087 /// maximum magnitude of increment of loading 00088 double maxincrnr; 00089 /// required value of lambda 00090 double rvlam; 00091 /// required error of reached required lambda 00092 double errl; 00093 00094 /* 00095 /// number of steps in the initial loop for equilibrium 00096 long nienr; 00097 /// harddisk backup restart indicator 00098 long hdbr; 00099 /// index of harddisk backup in the harddisk backup file 00100 long hdbid; 00101 /// backup filename 00102 char backupfname[1025]; 00103 */ 00104 }; 00105 00106 00107 #endif