00001 #ifndef LOADCASET_H 00002 #define LOADCASET_H 00003 00004 #include <stdio.h> 00005 #include "iotools.h" 00006 #include "pvalt.h" 00007 #include "loadelt.h" 00008 #include "sourcet.h" 00009 #include "climatcond.h" 00010 #include "climatcond2.h" 00011 #include "bnodvalt.h" 00012 #include "../../GEFEL/elemnode.h" 00013 00014 class loadcaset 00015 { 00016 public: 00017 loadcaset (void); 00018 ~loadcaset (void); 00019 void read (XFILE *in,long lcid); 00020 void print (FILE *out,long lcid); 00021 void assemble (long lcid,double *rhs); 00022 void assemble_flux (long lcid,double *rhs,long n); 00023 double give_fact (double t, long i); 00024 void elemsource (); 00025 void sourcenodalvalues (long idse,vector &nodval); 00026 00027 void source_contrib (long lcid,double *rhs); 00028 00029 // ************************************************* 00030 // DESCRIPTION OF BOUNDARY CONDITIONS ON ELEMENTS 00031 // ************************************************* 00032 /// number of element with boundary conditions 00033 long neb; 00034 /// number of objects describing nodal values 00035 long nnv; 00036 /// nodal values of variable fluxes or external values 00037 bnodvalt *nodval; 00038 /// number of objects describing climatic conditions 00039 long ncc,ncc2; 00040 /// detailed climatic conditions 00041 climatcond *climcond; 00042 climatcond2 *climcond2; 00043 /// type of reading of climatic conditions 00044 /// trcc=1 - climatice conditions are described in the input file 00045 /// trcc=2 - climatic conditions are desrcibed in additional files 00046 long trcc; 00047 long trcc2; 00048 00049 00050 // ************************* 00051 // DESCRIPTION OF SOURCES 00052 // ************************* 00053 /// number of quantity sources 00054 long nqs; 00055 00056 /// number of nodes with defined quantity source 00057 long nnqs; 00058 /// list of nodes with defined quantity source 00059 /// lnqs[nid][qsid] - at node nid (node id) is defined source of quantity with number qsid (quantity source id) 00060 long **lnqs; 00061 00062 /// number of elements with defined quantity source 00063 long neqs; 00064 /// list of elements with defined quantity source 00065 /// leqs[eid][qsid] - at element eid (element id) is defined source of quantity with number qsid (quantity source id) 00066 long **leqs; 00067 00068 /// number of elements influenced by nodes with prescribed source 00069 long neins; 00070 00071 /// objects describing sources 00072 sourcet *sour; 00073 00074 /// class contains map between selected nodes and elements 00075 /// it is used for sources defined at nodes and at elements 00076 /// JK, 20.10.2007 00077 elemnode *en; 00078 00079 /// preprocessing for sources 00080 /// sip = 0 - no preprocessing is required 00081 /// sip = 1 - preprocessing is required 00082 long sip; 00083 /// list of nodes in cluster where the same sources are defined 00084 long **lnc; 00085 /// array containing numbers of nodes in clusters 00086 long *nc; 00087 /// number of nodes 00088 long ne; 00089 00090 00091 00092 // ******************************* 00093 00094 /// number of prescribed values 00095 long npv; 00096 /// prescribed values 00097 pvalt *pv; 00098 00099 00100 00101 loadelt *elemload; 00102 00103 00104 00105 // type of time function 00106 generalfunct tfunc; 00107 // function defined by table 00108 tablefunct *tabf; 00109 long nmultfunc;//total number of functions 00110 00111 00112 /// values in master node 00113 double masterval; //unknown value 00114 double *mastergrad; //unknown gradient 00115 int ndim; //dimension of problem 00116 }; 00117 00118 #endif