Changeset 25836 for issm/trunk/src/c/classes/FemModel.h
- Timestamp:
- 12/08/20 08:45:53 (4 years ago)
- Location:
- issm/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/c
- Property svn:ignore
-
old new 23 23 issm_ocean 24 24 issm_dakota 25 issm_post
-
- Property svn:ignore
-
issm/trunk/src/c/classes/FemModel.h
r24686 r25836 11 11 class DataSet; 12 12 class Parameters; 13 class Inputs 2;13 class Inputs; 14 14 class Nodes; 15 15 class Vertices; … … 18 18 class Loads; 19 19 class Materials; 20 class SealevelMasks; 20 21 class Profiler; 21 22 class Elements; 22 23 #if defined(_HAVE_NEOPZ_) && !defined(_HAVE_AD_) 23 #include "./A daptiveMeshRefinement.h"24 #include "./AmrNeopz.h" 24 25 #endif 25 26 #if defined(_HAVE_BAMG_) && !defined(_HAVE_AD_) … … 44 45 Materials *materials; //one set of materials, for each element 45 46 Parameters *parameters; //one set of parameters, independent of the analysis_type 46 Inputs 2 *inputs2; //one set of inputs, independent of the analysis_type47 Inputs *inputs; //one set of inputs, independent of the analysis_type 47 48 Results *results; //results that cannot be fit into the elements 48 49 Vertices *vertices; //one set of vertices … … 56 57 Nodes **nodes_list; 57 58 58 //FIXME: do we want only one class and have virtual functions? or keep 2 classes , at least rename AdaptiveMeshRefinement -> AmrNeopz59 //FIXME: do we want only one class and have virtual functions? or keep 2 classes? 59 60 #if defined(_HAVE_NEOPZ_) && !defined(_HAVE_AD_) 60 A daptiveMeshRefinement*amr; //adaptive mesh refinement object. It keeps coarse mesh and execute refinement process61 AmrNeopz *amr; //adaptive mesh refinement object. It keeps coarse mesh and execute refinement process 61 62 #endif 62 63 … … 66 67 67 68 /*constructors, destructors: */ 69 FemModel(void); 68 70 FemModel(int argc,char** argv,ISSM_MPI_Comm comm_init,bool trace=false); 69 FemModel(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, char* restartfilename, ISSM_MPI_Comm incomm, int solution_type,IssmPDouble* X);71 FemModel(char* rootpath, char* inputfilename, char* outputfilename, char* toolkitsfilename, char* lockfilename, char* restartfilename, char* modelname, ISSM_MPI_Comm incomm, int solution_type,IssmPDouble* X); 70 72 ~FemModel(); 71 73 … … 73 75 int AnalysisIndex(int); 74 76 void CheckPoint(void); 77 void CheckPointAD(int step); 75 78 void CleanUp(void); 76 79 FemModel* copy(); 77 80 void Echo(); 78 81 int GetElementsWidth(){return 3;};//just tria elements in this first version 79 void InitFromFiles(char* rootpath, char* inputfilename, char* outputfilename, char* petscfilename, char* lockfilename, char* restartfilename, c onst int solution_type,bool trace,IssmPDouble* X=NULL);82 void InitFromFiles(char* rootpath, char* inputfilename, char* outputfilename, char* petscfilename, char* lockfilename, char* restartfilename, char* modelname, const int solution_type,bool trace,IssmPDouble* X=NULL); 80 83 void InitFromFids(char* rootpath, FILE* IOMODEL, FILE* toolkitsoptionsfid, int in_solution_type, bool trace, IssmPDouble* X=NULL); 81 void Marshall( char** pmarshalled_data, int* pmarshalled_data_size, int marshall_direction);84 void Marshall(MarshallHandle* marshallhandle); 82 85 void Restart(void); 86 void RestartAD(int step); 83 87 void SetCurrentConfiguration(int configuration_type); 84 88 void SetCurrentConfiguration(int configuration_type,int analysis_type); … … 154 158 void ThicknessAbsGradientx( IssmDouble* pJ); 155 159 void ThicknessPositivex(IssmDouble* pJ); 156 #ifdef _HAVE_GIA IVINS_160 #ifdef _HAVE_GIA_ 157 161 void Deflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt, IssmDouble* x, IssmDouble* y); 158 162 #endif … … 162 166 #endif 163 167 #ifdef _HAVE_SEALEVELRISE_ 164 void SealevelriseEustatic(Vector<IssmDouble>* p Sgi, IssmDouble* peustatic, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,int loop);165 void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius,bool verboseconvolution,int loop);166 void SealevelriseRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius);167 void SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, IssmDouble* latitude, IssmDouble* longitude, IssmDouble* radius, IssmDouble* xx, IssmDouble* yy, IssmDouble* zz,int loop,int horiz);168 IssmDouble SealevelriseOceanAverage(Vector<IssmDouble>* Sg );168 void SealevelriseEustatic(Vector<IssmDouble>* pRSLgi, IssmDouble* poceanarea, IssmDouble* pbslr,IssmDouble* pbslrice, IssmDouble* pbslrhydro, IssmDouble** pbslrice_partition,IssmDouble** pbslrhydro_partition, SealevelMasks* masks); 169 void SealevelriseNonEustatic(Vector<IssmDouble>* pSgo, Vector<IssmDouble>* pSg_old, SealevelMasks* masks,bool verboseconvolution); 170 void SealevelriseRotationalFeedback(Vector<IssmDouble>* pRSLgo_rot, Vector<IssmDouble>* pRSLg_old, IssmDouble* pIxz, IssmDouble* pIyz, IssmDouble* pIzz, SealevelMasks* masks); 171 void SealevelriseElastic(Vector<IssmDouble>* pUp, Vector<IssmDouble>* pNorth, Vector<IssmDouble>* pEast, Vector<IssmDouble>* pSg_old, SealevelMasks* masks); 172 IssmDouble SealevelriseOceanAverage(Vector<IssmDouble>* Sg,SealevelMasks* masks, IssmDouble oceanarea); 169 173 #endif 170 174 void HydrologyEPLupdateDomainx(IssmDouble* pEplcount); … … 176 180 void InitTransientInputx(int* transientinput_enum,int numoutputs); 177 181 void StackTransientInputx(int* input_enum,int* transientinput_enum,IssmDouble hydrotime,int numoutputs); 178 void AverageTransientInputx(int* transientinput_enum,int* averagedinput_enum,IssmDouble init_time,IssmDouble end_time,int numoutputs); 182 void StackTransientInputonBasex(int* input_enum,int* transientinput_enum,IssmDouble hydrotime,int numoutputs); 183 void AverageTransientInputx(int* transientinput_enum,int* averagedinput_enum,IssmDouble init_time,IssmDouble end_time,int numoutputs,int averaging_method); 184 void AverageTransientInputonBasex(int* transientinput_enum,int* averagedinput_enum,IssmDouble init_time,IssmDouble end_time,int numoutputs,int averaging_method); 179 185 void UpdateConstraintsx(void); 180 186 int UpdateVertexPositionsx(void); … … 195 201 void SetMesh(int** elementslist, IssmDouble** x, IssmDouble** y, int* numberofvertices, int* numberofelements); 196 202 void GetMeshOnPartition(Vertices* femmodel_vertices,Elements* femmodel_elements,IssmDouble** px, IssmDouble** py, IssmDouble** pz, int** pelementslist,int** psidtoindex); 197 void GetGroundediceLevelSet(IssmDouble** pmasklevelset);198 203 void CreateElements(int newnumberofelements,int elementswidth,int* newelementslist,bool* my_elements,Elements* elements); 199 204 void CreateMaterials(int newnumberofelements,bool* my_elements,Materials* materials); 200 205 void CreateConstraints(Vertices* newfemmodel_vertices,int analysis_enum,Constraints* newfemmodel_constraints); 201 206 void GetInputs(int* pnumP0inputs,IssmDouble** pP0inputs,int** pP0input_enums,int** pP0input_interp,int* pnumP1inputs,IssmDouble** pP1inputs,int** pP1input_enums,int** pP1input_interp); 202 void InterpolateInputs(Vertices* newfemmodel_vertices,Elements* newfemmodel_elements,Inputs 2* new_inputs);207 void InterpolateInputs(Vertices* newfemmodel_vertices,Elements* newfemmodel_elements,Inputs* new_inputs); 203 208 void UpdateElements(int newnumberofelements,int* newelementslist,bool* my_elements,int analysis_counter,Elements* newelements); 204 209 void WriteMeshInResults(void);
Note:
See TracChangeset
for help on using the changeset viewer.