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