Changeset 1648


Ignore:
Timestamp:
08/11/09 15:12:47 (16 years ago)
Author:
Mathieu Morlighem
Message:

Analysis_types are now always Enums not strings

Location:
issm/trunk/src/c
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/ModelProcessorx/CreateDataSets.cpp

    r1120 r1648  
    1414#include "./Model.h"
    1515#include "../shared/shared.h"
     16#include "../EnumDefinitions/EnumDefinitions.h"
    1617
    1718
     
    2425
    2526        /*This is just a high level driver: */
    26         if (strcmp(model->analysis_type,"control")==0){
     27        if (model->analysis_type==ControlAnalysisEnum()){
    2728
    28                 if (strcmp(model->sub_analysis_type,"horiz")==0){
     29                if (model->sub_analysis_type==HorizAnalysisEnum()){
    2930
    3031                        CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, model,model_handle);
     
    3435
    3536                }
    36                 else if (strcmp(model->sub_analysis_type,"vert")==0){
     37                else if (model->sub_analysis_type==VertAnalysisEnum()){
    3738
    3839                        CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes,pmaterials, model,model_handle);
     
    4142
    4243                }
    43                 else if (strcmp(model->sub_analysis_type,"stokes")==0){
     44                else if (model->sub_analysis_type==StokesAnalysisEnum()){
    4445
    4546                        CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, model,model_handle);
     
    4950
    5051                }
    51                 else if (strcmp(model->sub_analysis_type,"hutter")==0){
     52                else if (model->sub_analysis_type==HutterAnalysisEnum()){
    5253
    5354                        CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, model,model_handle);
     
    5960
    6061        }
    61         else if (strcmp(model->analysis_type,"diagnostic")==0){
     62        else if (model->analysis_type==DiagnosticAnalysisEnum()){
    6263
    63                 if (strcmp(model->sub_analysis_type,"horiz")==0){
     64                if (model->sub_analysis_type==HorizAnalysisEnum()){
    6465                       
    6566                        CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, model,model_handle);
     
    6970                               
    7071                }
    71                 else if (strcmp(model->sub_analysis_type,"vert")==0){
     72                else if (model->sub_analysis_type==VertAnalysisEnum()){
    7273               
    7374                        CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes,pmaterials, model,model_handle);
     
    7677                       
    7778                }
    78                 else if (strcmp(model->sub_analysis_type,"stokes")==0){
     79                else if (model->sub_analysis_type==StokesAnalysisEnum()){
    7980
    8081                        CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, model,model_handle);
     
    8384                       
    8485                }
    85                 else if (strcmp(model->sub_analysis_type,"hutter")==0){
     86                else if (model->sub_analysis_type==HutterAnalysisEnum()){
    8687
    8788                        CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, model,model_handle);
     
    9192                }
    9293        }
    93         else if (strcmp(model->analysis_type,"slope_compute")==0){
     94        else if (model->analysis_type==SlopeComputeAnalysisEnum()){
    9495
    9596                CreateElementsNodesAndMaterialsSlopeCompute(pelements,pnodes,pmaterials, model,model_handle);
     
    9899       
    99100        }
    100         else if (strcmp(model->analysis_type,"thermal")==0){
     101        else if (model->analysis_type==ThermalAnalysisEnum()){
    101102
    102103                CreateElementsNodesAndMaterialsThermal(pelements,pnodes,pmaterials, model,model_handle);
     
    106107                                       
    107108        }
    108         else if (strcmp(model->analysis_type,"melting")==0){
     109        else if (model->analysis_type==MeltingAnalysisEnum()){
    109110                       
    110111                CreateElementsNodesAndMaterialsMelting(pelements,pnodes,pmaterials, model,model_handle);
     
    113114                CreateParametersMelting(pparameters,model,model_handle);
    114115        }
    115         else if (strcmp(model->analysis_type,"prognostic")==0){
     116        else if (model->analysis_type==PrognosticAnalysisEnum()){
    116117
    117118                CreateElementsNodesAndMaterialsPrognostic(pelements,pnodes,pmaterials, model,model_handle);
     
    122123        }
    123124        else{
    124                 throw ErrorException(__FUNCT__,exprintf("%s%s%s%s"," analysis_type: ",model->analysis_type," sub_analysis_type: ",model->sub_analysis_type," not supported yet!"));
     125                throw ErrorException(__FUNCT__,exprintf("%s%i%s%i%s"," analysis_type: ",model->analysis_type," sub_analysis_type: ",model->sub_analysis_type," not supported yet!"));
    125126        }
    126127                       
  • issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp

    r765 r1648  
    2121        Param*   param = NULL;
    2222        int      count=1;
    23         int      analysis_type;
    24         int      sub_analysis_type;
    2523        int      numberofdofspernode;
    2624        int      dim;
     
    2927        /*Initialize dataset: */
    3028        parameters   = new DataSet(ParametersEnum());
    31 
    32         //Get analysis_type:
    33         analysis_type=AnalysisTypeAsEnum(model->analysis_type);
    34         sub_analysis_type=AnalysisTypeAsEnum(model->sub_analysis_type);
    35        
     29       
     30        //analysis and subanalysis
    3631        count++;
    3732        param= new Param(count,"analysis_type",INTEGER);
    38         param->SetInteger(analysis_type);
     33        param->SetInteger(model->analysis_type);
    3934        parameters->AddObject(param);
    4035
    4136        count++;
    4237        param= new Param(count,"sub_analysis_type",INTEGER);
    43         param->SetInteger(sub_analysis_type);
     38        param->SetInteger(model->sub_analysis_type);
    4439        parameters->AddObject(param);
    4540
     
    196191
    197192        /*Deal with numberofdofspernode: */
    198         DistributeNumDofs(&numberofdofspernode,analysis_type,sub_analysis_type);
     193        DistributeNumDofs(&numberofdofspernode,model->analysis_type,model->sub_analysis_type);
    199194
    200195        count++;
  • issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp

    r1628 r1648  
    3737        Matpar*     matpar  = NULL;
    3838
    39         int         analysis_type;
    40         int         sub_analysis_type;
    41        
    4239        /*output: */
    4340        int* epart=NULL; //element partitioning.
     
    154151        if (!model->ismacayealpattyn)goto cleanup_and_return;
    155152
    156         /*Get analysis_type: */
    157         analysis_type=AnalysisTypeAsEnum(model->analysis_type);
    158         sub_analysis_type=AnalysisTypeAsEnum(model->sub_analysis_type);
    159 
    160        
    161153        /*Width of elements: */
    162154        if(strcmp(model->meshtype,"2d")==0){
     
    583575
    584576        /*Get number of dofs per node: */
    585         DistributeNumDofs(&node_numdofs,analysis_type,sub_analysis_type);
     577        DistributeNumDofs(&node_numdofs,model->analysis_type,model->sub_analysis_type);
    586578
    587579        for (i=0;i<model->numberofnodes;i++){
  • issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp

    r1104 r1648  
    3939        Sing*       sing   = NULL;
    4040
    41         int         analysis_type;
    42         int         sub_analysis_type;
    43        
    4441        /*output: */
    4542        int* epart=NULL; //element partitioning.
     
    118115        if (!model->ishutter)goto cleanup_and_return;
    119116
    120         /*Get analysis_type: */
    121         analysis_type=AnalysisTypeAsEnum(model->analysis_type);
    122         sub_analysis_type=AnalysisTypeAsEnum(model->sub_analysis_type);
    123 
    124117        /*Width of elements: */
    125118        if(strcmp(model->meshtype,"2d")==0){
     
    374367       
    375368        /*Get number of dofs per node: */
    376         DistributeNumDofs(&node_numdofs,analysis_type,sub_analysis_type);
     369        DistributeNumDofs(&node_numdofs,model->analysis_type,model->sub_analysis_type);
    377370
    378371        for (i=0;i<model->numberofnodes;i++){
  • issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp

    r1628 r1648  
    3737        Matpar*     matpar  = NULL;
    3838
    39         int         analysis_type;
    40         int         sub_analysis_type;
    41        
    4239        /*output: */
    4340        int* epart=NULL; //element partitioning.
     
    129126        if (!model->isstokes)goto cleanup_and_return;
    130127
    131         /*Get analysis_type: */
    132         analysis_type=AnalysisTypeAsEnum(model->analysis_type);
    133         sub_analysis_type=AnalysisTypeAsEnum(model->sub_analysis_type);
    134 
    135128        /*Width of elements: */
    136129        if(strcmp(model->meshtype,"2d")==0){
     
    413406
    414407        /*Get number of dofs per node: */
    415         DistributeNumDofs(&node_numdofs,analysis_type,sub_analysis_type);
     408        DistributeNumDofs(&node_numdofs,model->analysis_type,model->sub_analysis_type);
    416409
    417410        for (i=0;i<model->numberofnodes;i++){
  • issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp

    r1628 r1648  
    3636        Matpar*     matpar  = NULL;
    3737
    38         int         analysis_type;
    39         int         sub_analysis_type;
    40        
    4138        /*output: */
    4239        int* epart=NULL; //element partitioning.
     
    138135        if (strcmp(model->meshtype,"2d")==0)goto cleanup_and_return;
    139136
    140         /*Get analysis_type: */
    141         analysis_type=AnalysisTypeAsEnum(model->analysis_type);
    142         sub_analysis_type=AnalysisTypeAsEnum(model->sub_analysis_type);
    143 
    144137        #ifdef _PARALLEL_
    145138        /*Determine parallel partitioning of elements: we use Metis for now. First load the data, then partition*/
     
    331324       
    332325        /*Get number of dofs per node: */
    333         DistributeNumDofs(&node_numdofs,analysis_type,sub_analysis_type);
     326        DistributeNumDofs(&node_numdofs,model->analysis_type,model->sub_analysis_type);
    334327
    335328        for (i=0;i<model->numberofnodes;i++){
  • issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp

    r1628 r1648  
    3535        Matice*     matice  = NULL;
    3636        Matpar*     matpar  = NULL;
    37 
    38         int         analysis_type;
    39         int         sub_analysis_type;
    4037       
    4138        /*output: */
     
    125122        materials = new DataSet(MaterialsEnum());
    126123
    127         /*Get analysis_type: */
    128         analysis_type=AnalysisTypeAsEnum(model->analysis_type);
    129         sub_analysis_type=AnalysisTypeAsEnum(model->sub_analysis_type);
    130        
    131124        /*Width of elements: */
    132125        if(strcmp(model->meshtype,"2d")==0)throw ErrorException(__FUNCT__," error message: 2d temperature computations not supported yet!");
     
    378371
    379372        /*Get number of dofs per node: */
    380         DistributeNumDofs(&node_numdofs,analysis_type,sub_analysis_type);
     373        DistributeNumDofs(&node_numdofs,model->analysis_type,model->sub_analysis_type);
    381374
    382375        for (i=0;i<model->numberofnodes;i++){
  • issm/trunk/src/c/ModelProcessorx/Melting/CreateParametersMelting.cpp

    r765 r1648  
    2828
    2929        /* get initial melting if transient*/
    30         if(strcmp(model->sub_analysis_type,"transient")==0){
     30        if(model->sub_analysis_type==TransientAnalysisEnum()){
    3131
    3232                /*Get melting: */
  • issm/trunk/src/c/ModelProcessorx/Model.cpp

    r1628 r1648  
    3535        model->repository=NULL;
    3636        model->meshtype=NULL;
    37         model->analysis_type=NULL;
    38         model->sub_analysis_type=NULL;
     37        model->analysis_type=0;
     38        model->sub_analysis_type=0;
    3939        model->qmu_analysis=0;
    4040        model->solverstring=NULL;
     
    265265        xfree((void**)&model->meshtype);
    266266        xfree((void**)&model->name);
    267         xfree((void**)&model->analysis_type);
    268         xfree((void**)&model->sub_analysis_type);
    269267       
    270268        xfree((void**)&model->riftinfo);
     
    303301
    304302        /*In ModelInit, we get all the data that is not difficult to get, and that is small: */
    305 
    306303        ModelFetchData((void**)&model->name,NULL,NULL,model_handle,"name","String",NULL);
    307         ModelFetchData((void**)&model->analysis_type,NULL,NULL,model_handle,"analysis_type","String",NULL);
    308         ModelFetchData((void**)&model->sub_analysis_type,NULL,NULL,model_handle,"sub_analysis_type","String",NULL);
     304        ModelFetchData((void**)&model->analysis_type,NULL,NULL,model_handle,"analysis_type","Integer",NULL);
     305        ModelFetchData((void**)&model->sub_analysis_type,NULL,NULL,model_handle,"sub_analysis_type","Integer",NULL);
    309306        ModelFetchData((void**)&model->qmu_analysis,NULL,NULL,model_handle,"qmu_analysis","Integer",NULL);
    310 
    311307        ModelFetchData((void**)&model->meshtype,NULL,NULL,model_handle,"type","String",NULL);
    312308        /*!Get numberofelements and numberofnodes: */
  • issm/trunk/src/c/ModelProcessorx/Model.h

    r1628 r1648  
    1616        char*   repository;
    1717        char*   meshtype;
    18         char*   analysis_type;
    19         char*   sub_analysis_type;
     18        int     analysis_type;
     19        int     sub_analysis_type;
    2020        int     qmu_analysis;
    2121        char*   solverstring;
  • issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp

    r1628 r1648  
    3737        Matpar*     matpar  = NULL;
    3838
    39         int         analysis_type;
    40         int         sub_analysis_type;
    41        
    4239        /*output: */
    4340        int* epart=NULL; //element partitioning.
     
    148145        materials = new DataSet(MaterialsEnum());
    149146
    150 
    151         /*Get analysis_type: */
    152         analysis_type=AnalysisTypeAsEnum(model->analysis_type);
    153         sub_analysis_type=AnalysisTypeAsEnum(model->sub_analysis_type);
    154 
    155        
    156147        /*Width of elements: */
    157148        if(strcmp(model->meshtype,"2d")==0){
     
    450441
    451442        /*Get number of dofs per node: */
    452         DistributeNumDofs(&node_numdofs,analysis_type,sub_analysis_type);
     443        DistributeNumDofs(&node_numdofs,model->analysis_type,model->sub_analysis_type);
    453444
    454445        for (i=0;i<model->numberofnodes;i++){
  • issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp

    r1628 r1648  
    3535        Penta*      penta = NULL;
    3636
    37         int         analysis_type;
    38         int         sub_analysis_type;
    39        
    4037        /*output: */
    4138        int* epart=NULL; //element partitioning.
     
    129126        if (!model->isstokes & !model->ishutter)goto cleanup_and_return;
    130127
    131         /*Get analysis_type: */
    132         analysis_type=AnalysisTypeAsEnum(model->analysis_type);
    133         sub_analysis_type=AnalysisTypeAsEnum(model->sub_analysis_type);
    134 
    135128        /*Width of elements: */
    136129        if(strcmp(model->meshtype,"2d")==0){
     
    389382
    390383        /*Get number of dofs per node: */
    391         DistributeNumDofs(&node_numdofs,analysis_type,sub_analysis_type);
     384        DistributeNumDofs(&node_numdofs,model->analysis_type,model->sub_analysis_type);
    392385
    393386        for (i=0;i<model->numberofnodes;i++){
  • issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp

    r1628 r1648  
    3737        Matpar*     matpar  = NULL;
    3838
    39         int         analysis_type;
    40         int         sub_analysis_type;
    41        
    4239        /*output: */
    4340        int* epart=NULL; //element partitioning.
     
    126123        materials = new DataSet(MaterialsEnum());
    127124
    128 
    129         /*Get analysis_type: */
    130         analysis_type=AnalysisTypeAsEnum(model->analysis_type);
    131         sub_analysis_type=AnalysisTypeAsEnum(model->sub_analysis_type);
    132 
    133125        /*Width of elements: */
    134126        if(strcmp(model->meshtype,"2d")==0){
     
    380372
    381373        /*Get number of dofs per node: */
    382         DistributeNumDofs(&node_numdofs,analysis_type,sub_analysis_type);
     374        DistributeNumDofs(&node_numdofs,model->analysis_type,model->sub_analysis_type);
    383375
    384376        for (i=0;i<model->numberofnodes;i++){
  • issm/trunk/src/c/ModelProcessorx/Thermal/CreateParametersThermal.cpp

    r960 r1648  
    6666
    6767        /* get initial temperature and melting if transient*/
    68         if(strcmp(model->sub_analysis_type,"transient")==0){
     68        if(model->sub_analysis_type==TransientAnalysisEnum()){
    6969
    7070                /*Get melting and temperature: */
  • issm/trunk/src/c/parallel/CreateFemModel.cpp

    r614 r1648  
    1010#include "../issm.h"
    1111
    12 void CreateFemModel(FemModel* femmodel,ConstDataHandle MODEL,char* analysis_type,char* sub_analysis_type){
     12void CreateFemModel(FemModel* femmodel,ConstDataHandle MODEL,int analysis_type,int sub_analysis_type){
    1313
    1414        /*Model output: */
     
    3636
    3737        _printf_("   specifying analysis\n");
    38         if (analysis_type!=NULL){
    39                 model->analysis_type=(char*)xmalloc((strlen(analysis_type)+1)*sizeof(char)); strcpy(model->analysis_type,analysis_type);
     38        if (analysis_type!=0){
     39                model->analysis_type=analysis_type;
    4040        }
    41         if (sub_analysis_type!=NULL){
    42                 model->sub_analysis_type=(char*)xmalloc((strlen(sub_analysis_type)+1)*sizeof(char)); strcpy(model->sub_analysis_type,sub_analysis_type);
     41        if (sub_analysis_type!=0){
     42                model->sub_analysis_type=sub_analysis_type;
    4343        }
    4444
  • issm/trunk/src/c/parallel/control.cpp

    r1271 r1648  
    6464        _printf_("read and create finite element model:\n");
    6565        _printf_("\n   reading control horiz model data:\n");
    66         CreateFemModel(&femmodels[0],fid,"control","horiz");
     66        CreateFemModel(&femmodels[0],fid,ControlAnalysisEnum(),HorizAnalysisEnum());
    6767        _printf_("\n   reading control vert model data:\n");
    68         CreateFemModel(&femmodels[1],fid,"control","vert");
     68        CreateFemModel(&femmodels[1],fid,ControlAnalysisEnum(),VertAnalysisEnum());
    6969        _printf_("\n   reading control stokes model data:\n");
    70         CreateFemModel(&femmodels[2],fid,"control","stokes");
     70        CreateFemModel(&femmodels[2],fid,ControlAnalysisEnum(),StokesAnalysisEnum());
    7171        _printf_("\n   reading control hutter model data:\n");
    72         CreateFemModel(&femmodels[3],fid,"control","hutter");
     72        CreateFemModel(&femmodels[3],fid,ControlAnalysisEnum(),HutterAnalysisEnum());
    7373        _printf_("\n   reading surface and bed slope computation model data:\n");
    74         CreateFemModel(&femmodels[4],fid,"slope_compute","");
     74        CreateFemModel(&femmodels[4],fid,SlopeComputeAnalysisEnum(),NoneAnalysisEnum());
    7575
    7676        _printf_("initialize inputs:\n");
  • issm/trunk/src/c/parallel/diagnostic.cpp

    r1271 r1648  
    6161        _printf_("read and create finite element model:\n");
    6262        _printf_("\n   reading diagnostic horiz model data:\n");
    63         CreateFemModel(&femmodels[0],fid,"diagnostic","horiz");
     63        CreateFemModel(&femmodels[0],fid,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
    6464        _printf_("\n   reading diagnostic vert model data:\n");
    65         CreateFemModel(&femmodels[1],fid,"diagnostic","vert");
     65        CreateFemModel(&femmodels[1],fid,DiagnosticAnalysisEnum(),VertAnalysisEnum());
    6666        _printf_("\n   reading diagnostic stokes model data:\n");
    67         CreateFemModel(&femmodels[2],fid,"diagnostic","stokes");
     67        CreateFemModel(&femmodels[2],fid,DiagnosticAnalysisEnum(),StokesAnalysisEnum());
    6868        _printf_("\n   reading diagnostic hutter model data:\n");
    69         CreateFemModel(&femmodels[3],fid,"diagnostic","hutter");
     69        CreateFemModel(&femmodels[3],fid,DiagnosticAnalysisEnum(),HutterAnalysisEnum());
    7070        _printf_("\n   reading surface and bed slope computation model data:\n");
    71         CreateFemModel(&femmodels[4],fid,"slope_compute","");
    72 
     71        CreateFemModel(&femmodels[4],fid,SlopeComputeAnalysisEnum(),NoneAnalysisEnum());
    7372
    7473        _printf_("initialize inputs:\n");
  • issm/trunk/src/c/parallel/parallel.h

    r1265 r1648  
    4343void ControlTemporaryResults(FemModel* fems,double* param_g,double* J,int n,ParameterInputs* inputs);
    4444
    45 void CreateFemModel(FemModel* femmodel,ConstDataHandle MODEL,char* analysis_type,char* sub_analysis_type);
     45void CreateFemModel(FemModel* femmodel,ConstDataHandle MODEL,int analysis_type,int sub_analysis_type);
    4646//int BatchDebug(Mat* Kgg,Vec* pg,FemModel* femmodel,char* filename);
    4747void ProcessResults(DataSet** presults,FemModel* fems,int analysis_type);
  • issm/trunk/src/c/parallel/prognostic.cpp

    r1271 r1648  
    6565
    6666        _printf_("read and create finite element model:\n");
    67         CreateFemModel(&fem,fid,"prognostic","");
     67        CreateFemModel(&fem,fid,PrognosticAnalysisEnum(),NoneAnalysisEnum());
    6868
    6969        //retrieve parameters used to fill inputs
  • issm/trunk/src/c/parallel/thermal.cpp

    r1271 r1648  
    6464
    6565        _printf_("read and create thermal finite element model:\n");
    66         CreateFemModel(&femmodels[0],fid,"thermal",NULL);
     66        CreateFemModel(&femmodels[0],fid,ThermalAnalysisEnum(),0);
    6767        _printf_("read and create melting finite element model:\n");
    68         CreateFemModel(&femmodels[1],fid,"melting",NULL);
     68        CreateFemModel(&femmodels[1],fid,MeltingAnalysisEnum(),0);
    6969
    7070        _printf_("initialize inputs:\n");
  • issm/trunk/src/c/parallel/transient.cpp

    r1271 r1648  
    6666        _printf_("read and create finite element model:\n");
    6767        _printf_("\n   reading diagnostic horiz model data:\n");
    68         CreateFemModel(&femmodels[0],fid,"diagnostic","horiz");
     68        CreateFemModel(&femmodels[0],fid,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
    6969        _printf_("\n   reading diagnostic vert model data:\n");
    70         CreateFemModel(&femmodels[1],fid,"diagnostic","vert");
     70        CreateFemModel(&femmodels[1],fid,DiagnosticAnalysisEnum(),VertAnalysisEnum());
    7171        _printf_("\n   reading diagnostic stokes model data:\n");
    72         CreateFemModel(&femmodels[2],fid,"diagnostic","stokes");
     72        CreateFemModel(&femmodels[2],fid,DiagnosticAnalysisEnum(),StokesAnalysisEnum());
    7373        _printf_("\n   reading diagnostic hutter model data:\n");
    74         CreateFemModel(&femmodels[3],fid,"diagnostic","hutter");
     74        CreateFemModel(&femmodels[3],fid,DiagnosticAnalysisEnum(),HutterAnalysisEnum());
    7575        _printf_("\n   reading surface and bed slope computation model data:\n");
    76         CreateFemModel(&femmodels[4],fid,"slope_compute","");
     76        CreateFemModel(&femmodels[4],fid,SlopeComputeAnalysisEnum(),NoneAnalysisEnum());
    7777        _printf_("\n   reading prognositc model data:\n");
    78         CreateFemModel(&femmodels[5],fid,"prognostic","");
     78        CreateFemModel(&femmodels[5],fid,PrognosticAnalysisEnum(),NoneAnalysisEnum());
    7979       
    8080        /*Do we run in 3d?, in which case we need thermal and melting also:*/
     
    8282        if(dim==3){
    8383                _printf_("read and create thermal finite element model:\n");
    84                 CreateFemModel(&femmodels[6],fid,"thermal","transient");
     84                CreateFemModel(&femmodels[6],fid,ThermalAnalysisEnum(),TransientAnalysisEnum());
    8585                _printf_("read and create melting finite element model:\n");
    86                 CreateFemModel(&femmodels[7],fid,"melting","transient");
     86                CreateFemModel(&femmodels[7],fid,MeltingAnalysisEnum(),TransientAnalysisEnum());
    8787        }
    8888
Note: See TracChangeset for help on using the changeset viewer.