Changeset 13277
- Timestamp:
- 09/06/12 14:55:19 (13 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/FemModel.cpp
r13036 r13277 21 21 /*Object constructors and destructor*/ 22 22 /*FUNCTION FemModel::constructor {{{*/ 23 FemModel::FemModel(char* inputfilename, char* outputfilename, const int in_solution_type,const int* analyses,const int nummodels){23 FemModel::FemModel(char* rootpath, char* inputfilename, char* outputfilename, const int in_solution_type,const int* analyses,const int nummodels){ 24 24 25 25 /*intermediary*/ … … 45 45 46 46 /*create datasets for all analyses*/ 47 ModelProcessorx(&this->elements,&this->nodes,&this->vertices,&this->materials,&this->constraints,&this->loads,&this->parameters,IOMODEL, this->solution_type,nummodels,analyses);47 ModelProcessorx(&this->elements,&this->nodes,&this->vertices,&this->materials,&this->constraints,&this->loads,&this->parameters,IOMODEL,rootpath,this->solution_type,nummodels,analyses); 48 48 49 49 /*do the post-processing of the datasets to get an FemModel that can actually run analyses: */ -
issm/trunk-jpl/src/c/classes/FemModel.h
r12832 r13277 43 43 44 44 /*constructors, destructors: */ 45 FemModel(char* inputfilename, char* outputfilename, const int solution_type,const int* analyses,const int nummodels);45 FemModel(char* rootpath, char* inputfilename, char* outputfilename, const int solution_type,const int* analyses,const int nummodels); 46 46 ~FemModel(); 47 47 -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateDataSets.cpp
r13056 r13277 16 16 17 17 18 void CreateDataSets(Elements** pelements,Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel,c onst int solution_type,const int analysis_type,const int nummodels,int analysis_counter){18 void CreateDataSets(Elements** pelements,Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel,char* rootpath,const int solution_type,const int analysis_type,const int nummodels,int analysis_counter){ 19 19 20 20 bool continuous = true; … … 133 133 134 134 /*Generate objects that are not dependent on any analysis_type: */ 135 CreateParameters(pparameters,iomodel, solution_type,analysis_type,analysis_counter);135 CreateParameters(pparameters,iomodel,rootpath,solution_type,analysis_type,analysis_counter); 136 136 137 137 /*Update Elements in case we are running a transient solution: */ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
r13268 r13277 19 19 #include "./ModelProcessorx.h" 20 20 21 void CreateParameters(Parameters** pparameters,IoModel* iomodel,c onst int solution_type,int analysis_type,int analysis_counter){21 void CreateParameters(Parameters** pparameters,IoModel* iomodel,char* rootpath,const int solution_type,int analysis_type,int analysis_counter){ 22 22 23 23 int i; … … 143 143 144 144 #ifdef _HAVE_DAKOTA_ 145 CreateParametersDakota(¶meters,iomodel, solution_type,analysis_type);145 CreateParametersDakota(¶meters,iomodel,rootpath,solution_type,analysis_type); 146 146 #endif 147 147 -
issm/trunk-jpl/src/c/modules/ModelProcessorx/Dakota/CreateParametersDakota.cpp
r13056 r13277 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateParametersDakota(Parameters** pparameters,IoModel* iomodel, int solution_type,int analysis_type){15 void CreateParametersDakota(Parameters** pparameters,IoModel* iomodel,char* rootpath,int solution_type,int analysis_type){ 16 16 17 17 /*variable declarations: {{{*/ … … 74 74 75 75 /*name of qmu input, error and output files:{{{*/ 76 qmuinname=xNew<char>((strlen( name)+strlen(".qmu.in")+1));77 sprintf(qmuinname,"%s%s ",name,".qmu.in");76 qmuinname=xNew<char>((strlen(rootpath)+strlen(name)+strlen(".qmu.in")+1)); 77 sprintf(qmuinname,"%s%s%s",rootpath,name,".qmu.in"); 78 78 parameters->AddObject(new StringParam(QmuInNameEnum,qmuinname)); 79 79 80 qmuoutname=xNew<char>((strlen( name)+strlen(".qmu.out")+1));81 sprintf(qmuoutname,"%s%s ",name,".qmu.out");80 qmuoutname=xNew<char>((strlen(rootpath)+strlen(name)+strlen(".qmu.out")+1)); 81 sprintf(qmuoutname,"%s%s%s",rootpath,name,".qmu.out"); 82 82 parameters->AddObject(new StringParam(QmuOutNameEnum,qmuoutname)); 83 83 84 qmuerrname=xNew<char>((strlen( name)+strlen(".qmu.err")+1));85 sprintf(qmuerrname,"%s%s ",name,".qmu.err");84 qmuerrname=xNew<char>((strlen(rootpath)+strlen(name)+strlen(".qmu.err")+1)); 85 sprintf(qmuerrname,"%s%s%s",rootpath,name,".qmu.err"); 86 86 parameters->AddObject(new StringParam(QmuErrNameEnum,qmuerrname)); 87 87 /*}}}*/ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp
r12832 r13277 17 17 #include "../../modules/modules.h" 18 18 19 void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads, Parameters** pparameters, FILE* IOMODEL,c onst int solution_type,const int nummodels,const int* analysis_type_list){19 void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads, Parameters** pparameters, FILE* IOMODEL,char* rootpath,const int solution_type,const int nummodels,const int* analysis_type_list){ 20 20 21 21 int i,analysis_type,dim,verbose; … … 69 69 70 70 if(VerboseMProcessor()) _pprintLine_(" creating datasets for analysis " << EnumToStringx(analysis_type)); 71 CreateDataSets(&elements,&nodes,&vertices,&materials,&constraints,&loads,¶meters,iomodel, solution_type,analysis_type,nummodels,i);71 CreateDataSets(&elements,&nodes,&vertices,&materials,&constraints,&loads,¶meters,iomodel,rootpath,solution_type,analysis_type,nummodels,i); 72 72 } 73 73 74 /*Free res sources:*/74 /*Free resources:*/ 75 75 delete iomodel; 76 76 -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.h
r13268 r13277 15 15 #include "../../io/io.h" 16 16 17 void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads, Parameters** pparameters, FILE* iomodel_handle,c onst int solution_type,const int nummodels,const int* analysis_type_list);17 void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads, Parameters** pparameters, FILE* iomodel_handle,char* rootpath,const int solution_type,const int nummodels,const int* analysis_type_listh); 18 18 19 19 /*Creation of fem datasets: general drivers*/ 20 void CreateDataSets(Elements** pelements,Nodes** pnodes,Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel,c onst int solution_type,int analysis_type,const int nummodels,int analysis_counter);20 void CreateDataSets(Elements** pelements,Nodes** pnodes,Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel,char* rootpath,const int solution_type,int analysis_type,const int nummodels,int analysis_counter); 21 21 void CreateElementsVerticesAndMaterials(Elements** pelements,Vertices** pvertices,Materials** pmaterials, IoModel* iomodel,const int nummodels); 22 void CreateParameters(Parameters** pparameters,IoModel* iomodel,c onst int solution_type,int analysis_type,int analysis_counter);22 void CreateParameters(Parameters** pparameters,IoModel* iomodel,char* rootpath,const int solution_type,int analysis_type,int analysis_counter); 23 23 void CreateParametersControl(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type); 24 void CreateParametersDakota(Parameters** pparameters,IoModel* iomodel, int solution_type,int analysis_type);24 void CreateParametersDakota(Parameters** pparameters,IoModel* iomodel,char* rootpath,int solution_type,int analysis_type); 25 25 void CreateParametersAutodiff(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type); 26 26 void UpdateElementsAndMaterialsControl(Elements* elements,Materials* materials, IoModel* iomodel); -
issm/trunk-jpl/src/c/solutions/ProcessArguments.cpp
r13056 r13277 9 9 #include "../include/include.h" 10 10 11 void ProcessArguments(int* solution_type,char** pbinfilename,char** poutbinfilename,char** ppetscfilename,char** plockfilename, int argc,char **argv){11 void ProcessArguments(int* solution_type,char** pbinfilename,char** poutbinfilename,char** ppetscfilename,char** plockfilename,char** prootpath, int argc,char **argv){ 12 12 13 13 char *modelname = NULL; … … 16 16 char *petscfilename = NULL; 17 17 char *lockfilename = NULL; 18 char *rootpath = NULL; 19 char *rootpatharg = NULL; 18 20 19 21 if(argc<2)_error_("Usage error: no solution requested"); 20 22 *solution_type=StringToEnumx(argv[1]); 21 23 if(argc<3)_error_("Usage error: missing model name"); 24 25 rootpatharg=argv[2]; 26 if(strcmp(strstr(rootpatharg,"/"),"/")!=0){ 27 rootpath = xNew<char>(strlen(rootpatharg)+2); sprintf(rootpath,"%s/",rootpatharg); 28 } 29 else{ 30 rootpath = xNew<char>(strlen(rootpatharg)+1); sprintf(rootpath,"%s",rootpatharg); 31 } 32 22 33 modelname=argv[3]; 23 binfilename = xNew<char>(strlen(modelname)+strlen(".bin") +1); sprintf(binfilename, "%s%s",modelname,".bin"); 24 outbinfilename = xNew<char>(strlen(modelname)+strlen(".outbin")+1); sprintf(outbinfilename,"%s%s",modelname,".outbin"); 25 petscfilename = xNew<char>(strlen(modelname)+strlen(".petsc") +1); sprintf(petscfilename, "%s%s",modelname,".petsc"); 26 lockfilename = xNew<char>(strlen(modelname)+strlen(".lock") +1); sprintf(lockfilename, "%s%s",modelname,".lock"); 34 if(strstr(modelname,rootpath)==NULL){ 35 binfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".bin") +1); sprintf(binfilename, "%s%s%s",rootpath,modelname,".bin"); 36 outbinfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".outbin")+1); sprintf(outbinfilename,"%s%s%s",rootpath,modelname,".outbin"); 37 petscfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".petsc") +1); sprintf(petscfilename, "%s%s%s",rootpath,modelname,".petsc"); 38 lockfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".lock") +1); sprintf(lockfilename, "%s%s%s",rootpath,modelname,".lock"); 39 } 40 else{ 41 binfilename = xNew<char>(strlen(modelname)+strlen(".bin") +1); sprintf(binfilename, "%s%s",modelname,".bin"); 42 outbinfilename = xNew<char>(strlen(modelname)+strlen(".outbin")+1); sprintf(outbinfilename,"%s%s",modelname,".outbin"); 43 petscfilename = xNew<char>(strlen(modelname)+strlen(".petsc") +1); sprintf(petscfilename, "%s%s",modelname,".petsc"); 44 lockfilename = xNew<char>(strlen(modelname)+strlen(".lock") +1); sprintf(lockfilename, "%s%s",modelname,".lock"); 45 } 27 46 28 47 /*Clean up and assign output pointer*/ … … 31 50 *ppetscfilename=petscfilename; 32 51 *plockfilename=lockfilename; 52 *prootpath=rootpath; 53 33 54 } -
issm/trunk-jpl/src/c/solutions/issm.cpp
r13268 r13277 37 37 char *outbinfilename = NULL; 38 38 char *petscfilename = NULL; 39 char *rootpath = NULL; 39 40 40 41 /*time*/ … … 79 80 _pprintLine_("(website: " << PACKAGE_URL << " contact: " << PACKAGE_BUGREPORT << ")"); 80 81 _pprintLine_(""); 81 ProcessArguments(&solution_type,&binfilename,&outbinfilename,&petscfilename,&lockfilename, argc,argv);82 ProcessArguments(&solution_type,&binfilename,&outbinfilename,&petscfilename,&lockfilename,&rootpath,argc,argv); 82 83 83 84 /*out of solution_type, figure out types of analyses needed in the femmodel: */ … … 90 91 start_init=(IssmPDouble)clock(); 91 92 #endif 92 femmodel=new FemModel( binfilename,outbinfilename,solution_type,analyses,numanalyses);93 femmodel=new FemModel(rootpath,binfilename,outbinfilename,solution_type,analyses,numanalyses); 93 94 94 95 /*get type of solution we are going to run: */ … … 203 204 xDelete<char>(outbinfilename); 204 205 xDelete<char>(petscfilename); 206 xDelete<char>(rootpath); 205 207 delete femmodel; 206 208 -
issm/trunk-jpl/src/c/solutions/kriging.cpp
r13267 r13277 7 7 8 8 /*Local prototypes*/ 9 void ProcessArguments2(char** pbinfilename,char** poutbinfilename,char** plockfilename, int argc,char **argv);9 void ProcessArguments2(char** pbinfilename,char** poutbinfilename,char** plockfilename,char** prootpath,int argc,char **argv); 10 10 void ProcessInputfile(IssmDouble **px,IssmDouble **py,IssmDouble **pdata,int *pnobs,IssmDouble **px_interp,IssmDouble **py_interp,int *pninterp,Options **poptions,FILE* fid); 11 11 … … 21 21 char *binfilename = NULL; 22 22 char *outbinfilename = NULL; 23 char *rootpath = NULL; 23 24 24 25 /*Input*/ … … 58 59 _pprintLine_("(website: " << PACKAGE_URL << " contact: " << PACKAGE_BUGREPORT << ")"); 59 60 _pprintLine_(""); 60 ProcessArguments2(&binfilename,&outbinfilename,&lockfilename, argc,argv);61 ProcessArguments2(&binfilename,&outbinfilename,&lockfilename,&rootpath,argc,argv); 61 62 62 63 /*Process input files*/ … … 89 90 xDelete<char>(binfilename); 90 91 xDelete<char>(outbinfilename); 92 xDelete<char>(rootpath); 91 93 xDelete<IssmDouble>(x); 92 94 xDelete<IssmDouble>(y); … … 115 117 } 116 118 117 void ProcessArguments2(char** pbinfilename,char** poutbinfilename,char** plockfilename, int argc,char **argv){119 void ProcessArguments2(char** pbinfilename,char** poutbinfilename,char** plockfilename,char** prootpath,int argc,char **argv){ 118 120 119 121 char *modelname = NULL; … … 121 123 char *outbinfilename = NULL; 122 124 char *lockfilename = NULL; 123 125 char *rootpatharg = NULL; 126 char *rootpath = NULL; 127 128 if(argc<1)_error_("Usage error: no execution path provided"); 124 129 if(argc<2)_error_("Usage error: missing model name"); 130 131 rootpatharg=argv[1]; 132 if(strcmp(strstr(rootpatharg,"/"),"/")!=0){ 133 rootpath = xNew<char>(strlen(rootpatharg)+2); sprintf(rootpath,"%s/",rootpatharg); 134 } 135 else{ 136 rootpath = xNew<char>(strlen(rootpatharg)+1); sprintf(rootpath,"%s",rootpatharg); 137 } 138 125 139 modelname=argv[2]; 126 binfilename = xNew<char>((strlen(modelname)+strlen(".bin") +1)); sprintf(binfilename, "%s%s",modelname,".bin"); 127 outbinfilename = xNew<char>((strlen(modelname)+strlen(".outbin")+1)); sprintf(outbinfilename,"%s%s",modelname,".outbin"); 128 lockfilename = xNew<char>((strlen(modelname)+strlen(".lock") +1)); sprintf(lockfilename, "%s%s",modelname,".lock"); 140 if(strstr(modelname,rootpath)==NULL){ 141 binfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".bin") +1); sprintf(binfilename, "%s%s%s",rootpath,modelname,".bin"); 142 outbinfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".outbin")+1); sprintf(outbinfilename,"%s%s%s",rootpath,modelname,".outbin"); 143 lockfilename = xNew<char>(strlen(rootpath)+strlen(modelname)+strlen(".lock") +1); sprintf(lockfilename, "%s%s%s",rootpath,modelname,".lock"); 144 } 145 else{ 146 binfilename = xNew<char>(strlen(modelname)+strlen(".bin") +1); sprintf(binfilename, "%s%s",modelname,".bin"); 147 outbinfilename = xNew<char>(strlen(modelname)+strlen(".outbin")+1); sprintf(outbinfilename,"%s%s",modelname,".outbin"); 148 lockfilename = xNew<char>(strlen(modelname)+strlen(".lock") +1); sprintf(lockfilename, "%s%s",modelname,".lock"); 149 } 129 150 130 151 /*Clean up and assign output pointer*/ … … 132 153 *poutbinfilename=outbinfilename; 133 154 *plockfilename=lockfilename; 155 *prootpath=rootpath; 156 134 157 } 135 158 -
issm/trunk-jpl/src/c/solutions/solutions.h
r13216 r13277 41 41 42 42 //diverse 43 void ProcessArguments(int* solution,char** pbinname,char** poutbinname,char** ppetscname,char** plockname, int argc,char **argv);43 void ProcessArguments(int* solution,char** pbinname,char** poutbinname,char** ppetscname,char** plockname,char** prootpath,int argc,char **argv); 44 44 void WriteLockFile(char* filename); 45 45 void controlrestart(FemModel* femmodel,IssmDouble* J);
Note:
See TracChangeset
for help on using the changeset viewer.