00001 #ifndef LPLATE_H
00002 #define LPLATE_H
00003
00004 #include "mpi.h"
00005 #include "../GEFEL/gtopology.h"
00006 #include "../GEFEL/gmatrix.h"
00007
00008 class lplate
00009 {
00010 public:
00011 lplate (int np,int mr,int nd,gtopology *top);
00012 ~lplate ();
00013 void globcnnum_lpp (gtopology *top,long *domproc,FILE *out);
00014 void constraintmat (double *th,long *domproc,FILE *out);
00015 void maxndofdom ();
00016 void assemble_cn (long *buff,long ndom);
00017 void assemble_thicknesses (double *buff,long ndom);
00018 void codenum_mult (long &nm);
00019 void assemble_constr ();
00020 void assemble_constr_dm ();
00021 void orthonormalization ();
00022 void orthonormalization_dm ();
00023 void locglob (double *gv,double *lv,long ns);
00024 void globloc (double *gv,double *lv,long ns);
00025 void printconstrmat (FILE *out);
00026 void printconstrmat_dm (FILE *out);
00027
00028 void precondstep (double *dd,double *pp);
00029 void cg (gmatrix *gm,double *lhs,double *rhs,long *domproc,FILE *out);
00030 void nodaldisplacements (gmatrix *gm,double *lhs,double *rhs,double *w,long *domproc);
00031
00032 void solve_system (gtopology *top,gmatrix *gm,
00033 long *domproc,double *lhs,double *rhs,FILE *out);
00034
00035
00036 void globcnn_auxiliary ();
00037 void locglob_auxiliary (double *gv,double *lv,long did,FILE *out);
00038 void globloc_auxiliary (double *gv,double *lv,long did);
00039
00040
00041
00042 int nproc;
00043
00044 int myrank;
00045
00046 long ndom;
00047
00048 long nn;
00049
00050 long nl;
00051
00052 long ndofn;
00053
00054 long nnmult;
00055
00056 long ndof;
00057
00058 long nmult;
00059
00060
00061 long maxndof;
00062
00063 double errcg;
00064
00065 long nicg;
00066
00067 double aerrcg;
00068
00069 long anicg;
00070
00071 double zero;
00072
00073
00074
00075
00076 long ***cn;
00077
00078
00079
00080 double **thick;
00081
00082
00083
00084 double **constrmat;
00085
00086
00087 lgnode *lgnodes;
00088
00089 matrix dcm;
00090
00091
00092
00093
00094 long ***gcn;
00095 long ngdof;
00096 long *adr;
00097
00098 };
00099
00100 #endif