Changeset 13277


Ignore:
Timestamp:
09/06/12 14:55:19 (13 years ago)
Author:
schlegel
Message:

CHG: Expect directory argument in issm execution to be full path to bin file, pass rootpath to dakota

Location:
issm/trunk-jpl/src/c
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r13036 r13277  
    2121/*Object constructors and destructor*/
    2222/*FUNCTION FemModel::constructor {{{*/
    23 FemModel::FemModel(char* inputfilename, char* outputfilename, const int in_solution_type,const int* analyses,const int nummodels){
     23FemModel::FemModel(char* rootpath, char* inputfilename, char* outputfilename, const int in_solution_type,const int* analyses,const int nummodels){
    2424
    2525        /*intermediary*/
     
    4545
    4646        /*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);
    4848
    4949        /*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  
    4343
    4444                /*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);
    4646                ~FemModel();
    4747
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateDataSets.cpp

    r13056 r13277  
    1616
    1717
    18 void CreateDataSets(Elements** pelements,Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads,Parameters** pparameters,IoModel* iomodel,const int solution_type,const int analysis_type,const int nummodels,int analysis_counter){
     18void 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){
    1919
    2020        bool        continuous = true;
     
    133133
    134134        /*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);
    136136
    137137        /*Update Elements in case we are running a transient solution: */
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r13268 r13277  
    1919#include "./ModelProcessorx.h"
    2020
    21 void CreateParameters(Parameters** pparameters,IoModel* iomodel,const int solution_type,int analysis_type,int analysis_counter){
     21void CreateParameters(Parameters** pparameters,IoModel* iomodel,char* rootpath,const int solution_type,int analysis_type,int analysis_counter){
    2222       
    2323        int         i;
     
    143143
    144144        #ifdef _HAVE_DAKOTA_
    145         CreateParametersDakota(&parameters,iomodel,solution_type,analysis_type);
     145        CreateParametersDakota(&parameters,iomodel,rootpath,solution_type,analysis_type);
    146146        #endif
    147147
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/Dakota/CreateParametersDakota.cpp

    r13056 r13277  
    1313#include "../ModelProcessorx.h"
    1414
    15 void CreateParametersDakota(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type){
     15void CreateParametersDakota(Parameters** pparameters,IoModel* iomodel,char* rootpath,int solution_type,int analysis_type){
    1616
    1717        /*variable declarations: {{{*/
     
    7474
    7575                /*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");
    7878                parameters->AddObject(new   StringParam(QmuInNameEnum,qmuinname));
    7979
    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");
    8282                parameters->AddObject(new   StringParam(QmuOutNameEnum,qmuoutname));
    8383
    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");
    8686                parameters->AddObject(new   StringParam(QmuErrNameEnum,qmuerrname));
    8787                /*}}}*/
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp

    r12832 r13277  
    1717#include "../../modules/modules.h"
    1818
    19 void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads, Parameters** pparameters, FILE* IOMODEL,const int solution_type,const int nummodels,const int* analysis_type_list){
     19void 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){
    2020
    2121        int   i,analysis_type,dim,verbose;
     
    6969       
    7070                if(VerboseMProcessor()) _pprintLine_("   creating datasets for analysis " << EnumToStringx(analysis_type));
    71                 CreateDataSets(&elements,&nodes,&vertices,&materials,&constraints,&loads,&parameters,iomodel,solution_type,analysis_type,nummodels,i);
     71                CreateDataSets(&elements,&nodes,&vertices,&materials,&constraints,&loads,&parameters,iomodel,rootpath,solution_type,analysis_type,nummodels,i);
    7272        }
    7373
    74         /*Free ressources:*/
     74        /*Free resources:*/
    7575        delete iomodel;
    7676
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.h

    r13268 r13277  
    1515#include "../../io/io.h"
    1616
    17 void ModelProcessorx(Elements** pelements, Nodes** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints** pconstraints, Loads** ploads, Parameters** pparameters, FILE* iomodel_handle,const int solution_type,const int nummodels,const int* analysis_type_list);
     17void 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);
    1818
    1919/*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,const int solution_type,int analysis_type,const int nummodels,int analysis_counter);
     20void  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);
    2121void  CreateElementsVerticesAndMaterials(Elements** pelements,Vertices** pvertices,Materials** pmaterials, IoModel* iomodel,const int nummodels);
    22 void  CreateParameters(Parameters** pparameters,IoModel* iomodel,const int solution_type,int analysis_type,int analysis_counter);
     22void  CreateParameters(Parameters** pparameters,IoModel* iomodel,char* rootpath,const int solution_type,int analysis_type,int analysis_counter);
    2323void  CreateParametersControl(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type);
    24 void  CreateParametersDakota(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type);
     24void  CreateParametersDakota(Parameters** pparameters,IoModel* iomodel,char* rootpath,int solution_type,int analysis_type);
    2525void  CreateParametersAutodiff(Parameters** pparameters,IoModel* iomodel,int solution_type,int analysis_type);
    2626void  UpdateElementsAndMaterialsControl(Elements* elements,Materials* materials, IoModel* iomodel);
  • issm/trunk-jpl/src/c/solutions/ProcessArguments.cpp

    r13056 r13277  
    99#include "../include/include.h"
    1010
    11 void ProcessArguments(int* solution_type,char** pbinfilename,char** poutbinfilename,char** ppetscfilename,char** plockfilename,int argc,char **argv){
     11void ProcessArguments(int* solution_type,char** pbinfilename,char** poutbinfilename,char** ppetscfilename,char** plockfilename,char** prootpath, int argc,char **argv){
    1212
    1313        char *modelname      = NULL;
     
    1616        char *petscfilename  = NULL;
    1717        char *lockfilename   = NULL;
     18        char *rootpath       = NULL;
     19        char *rootpatharg    = NULL;
    1820
    1921        if(argc<2)_error_("Usage error: no solution requested");
    2022        *solution_type=StringToEnumx(argv[1]);
    2123        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
    2233        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        }
    2746
    2847        /*Clean up and assign output pointer*/
     
    3150        *ppetscfilename=petscfilename;
    3251        *plockfilename=lockfilename;
     52        *prootpath=rootpath;
     53
    3354}
  • issm/trunk-jpl/src/c/solutions/issm.cpp

    r13268 r13277  
    3737        char *outbinfilename = NULL;
    3838        char *petscfilename  = NULL;
     39        char *rootpath       = NULL;
    3940
    4041        /*time*/
     
    7980        _pprintLine_("(website: " << PACKAGE_URL << " contact: " << PACKAGE_BUGREPORT << ")");
    8081        _pprintLine_("");
    81         ProcessArguments(&solution_type,&binfilename,&outbinfilename,&petscfilename,&lockfilename,argc,argv);
     82        ProcessArguments(&solution_type,&binfilename,&outbinfilename,&petscfilename,&lockfilename,&rootpath,argc,argv);
    8283
    8384        /*out of solution_type, figure out types of analyses needed in the femmodel: */
     
    9091        start_init=(IssmPDouble)clock();
    9192        #endif
    92         femmodel=new FemModel(binfilename,outbinfilename,solution_type,analyses,numanalyses);
     93        femmodel=new FemModel(rootpath,binfilename,outbinfilename,solution_type,analyses,numanalyses);
    9394       
    9495        /*get type of solution we are going to run: */
     
    203204        xDelete<char>(outbinfilename);
    204205        xDelete<char>(petscfilename);
     206        xDelete<char>(rootpath);
    205207        delete femmodel;
    206208
  • issm/trunk-jpl/src/c/solutions/kriging.cpp

    r13267 r13277  
    77
    88/*Local prototypes*/
    9 void ProcessArguments2(char** pbinfilename,char** poutbinfilename,char** plockfilename,int argc,char **argv);
     9void ProcessArguments2(char** pbinfilename,char** poutbinfilename,char** plockfilename,char** prootpath,int argc,char **argv);
    1010void ProcessInputfile(IssmDouble **px,IssmDouble **py,IssmDouble **pdata,int *pnobs,IssmDouble **px_interp,IssmDouble **py_interp,int *pninterp,Options **poptions,FILE* fid);
    1111
     
    2121        char *binfilename    = NULL;
    2222        char *outbinfilename = NULL;
     23        char *rootpath       = NULL;
    2324
    2425        /*Input*/
     
    5859        _pprintLine_("(website: " << PACKAGE_URL << " contact: " << PACKAGE_BUGREPORT << ")");
    5960        _pprintLine_("");
    60         ProcessArguments2(&binfilename,&outbinfilename,&lockfilename,argc,argv);
     61        ProcessArguments2(&binfilename,&outbinfilename,&lockfilename,&rootpath,argc,argv);
    6162
    6263        /*Process input files*/
     
    8990        xDelete<char>(binfilename);
    9091        xDelete<char>(outbinfilename);
     92        xDelete<char>(rootpath);
    9193        xDelete<IssmDouble>(x);
    9294        xDelete<IssmDouble>(y);
     
    115117}
    116118
    117 void ProcessArguments2(char** pbinfilename,char** poutbinfilename,char** plockfilename,int argc,char **argv){
     119void ProcessArguments2(char** pbinfilename,char** poutbinfilename,char** plockfilename,char** prootpath,int argc,char **argv){
    118120
    119121        char *modelname      = NULL;
     
    121123        char *outbinfilename = NULL;
    122124        char *lockfilename   = NULL;
    123 
     125        char *rootpatharg    = NULL;
     126        char *rootpath       = NULL;
     127
     128        if(argc<1)_error_("Usage error: no execution path provided");
    124129        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
    125139        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        }
    129150
    130151        /*Clean up and assign output pointer*/
     
    132153        *poutbinfilename=outbinfilename;
    133154        *plockfilename=lockfilename;
     155        *prootpath=rootpath;
     156
    134157}
    135158
  • issm/trunk-jpl/src/c/solutions/solutions.h

    r13216 r13277  
    4141
    4242//diverse
    43 void ProcessArguments(int* solution,char** pbinname,char** poutbinname,char** ppetscname,char** plockname,int argc,char **argv);
     43void ProcessArguments(int* solution,char** pbinname,char** poutbinname,char** ppetscname,char** plockname,char** prootpath,int argc,char **argv);
    4444void WriteLockFile(char* filename);
    4545void controlrestart(FemModel* femmodel,IssmDouble* J);
Note: See TracChangeset for help on using the changeset viewer.