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 void globcnn_auxiliary ();
00036 void locglob_auxiliary (double *gv,double *lv,long did,FILE *out);
00037 void globloc_auxiliary (double *gv,double *lv,long did);
00038
00039
00040
00041 int nproc;
00042
00043 int myrank;
00044
00045 long ndom;
00046
00047 long nn;
00048
00049 long nl;
00050
00051 long ndofn;
00052
00053 long nnmult;
00054
00055 long ndof;
00056
00057 long nmult;
00058
00059
00060 long maxndof;
00061
00062 double errcg;
00063
00064 long nicg;
00065
00066 double aerrcg;
00067
00068 long anicg;
00069
00070 double zero;
00071
00072
00073
00074
00075 long ***cn;
00076
00077
00078
00079 double **thick;
00080
00081
00082
00083 double **constrmat;
00084
00085
00086 lgnode *lgnodes;
00087
00088 matrix dcm;
00089
00090
00091
00092
00093 long ***gcn;
00094 long ngdof;
00095 long *adr;
00096
00097 };
00098
00099 #endif