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 cg (gmatrix *gm,double *lhs,double *rhs,long *domproc,FILE *out);
00029 void nodaldisplacements (gmatrix *gm,double *lhs,double *rhs,double *w,long *domproc);
00030
00031 void solve_system (gtopology *top,gmatrix *gm,
00032 long *domproc,double *lhs,double *rhs,FILE *out);
00033
00034
00035
00036 int nproc;
00037
00038 int myrank;
00039
00040 long ndom;
00041
00042 long nn;
00043
00044 long nl;
00045
00046 long ndofn;
00047
00048 long nnmult;
00049
00050 long ndof;
00051
00052 long nmult;
00053
00054
00055 long maxndof;
00056
00057 double errcg;
00058
00059 long nicg;
00060
00061 double aerrcg;
00062
00063 long anicg;
00064
00065 double zero;
00066
00067
00068
00069
00070 long ***cn;
00071
00072
00073
00074 double **thick;
00075
00076
00077
00078 double **constrmat;
00079
00080
00081 lgnode *lgnodes;
00082
00083 matrix dcm;
00084 };
00085
00086 #endif