00001 #ifndef FLOATSUB_H 00002 #define FLOATSUB_H 00003 00004 #include "gnode.h" 00005 #include "lgnode.h" 00006 00007 /** 00008 class floatsub 00009 00010 class deals with floating subdomains 00011 floating subdomains are used in e.g. problem of reinforcement in matrix, pull-out test, etc. 00012 00013 JK, 7.11.2005 00014 */ 00015 class floatsub 00016 { 00017 public: 00018 floatsub (void); 00019 ~floatsub (void); 00020 00021 void ndof_subdom (gnode *gnodes); 00022 long number_of_lagr_mult (long nlgn,lgnode *lgnodes,gnode *gnodes); 00023 void displ_extract (long nlgn,lgnode *lgnodes,gnode *gnodes); 00024 00025 void local_coarse (double *cv,double *lv); 00026 void coarse_local (double *cv,double *lv); 00027 00028 /// the number of subdomains (for problems with floating parts) 00029 long nsd; 00030 /// the number of nodes on particular subdomains 00031 long *nnsd; 00032 /// first node numbers on subdomains 00033 long *fnnsd; 00034 /// number of elements on particular subdomains 00035 long *nesd; 00036 /// first element numbers on subdomains 00037 long *fensd; 00038 /// array containing numbers of DOFs on particular subdomains 00039 long *ndofd; 00040 /// array containing number of the first unknown on subdomains 00041 long *fdofd; 00042 00043 /// the number of Lagrange multipliers 00044 long nlm; 00045 /// extraction table, contains nonzero entries of constraint %matrix 00046 long **extrtab; 00047 00048 00049 }; 00050 00051 #endif