Changeset 1838


Ignore:
Timestamp:
08/24/09 17:55:52 (16 years ago)
Author:
Eric.Larour
Message:

Brachning back from issm.controlstatic, by hand

Location:
issm/trunk/src/c/ModelProcessorx
Files:
2 added
2 deleted
2 edited

Legend:

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

    r1805 r1838  
    11/*!\file: CreateDataSets
    2  * \brief general driver for creating all datasets that make a finite element model
     2 * \brief general driver for creating all datasets that make a finite element iomodel
    33 */
    44
     
    1212#define __FUNCT__ "CreateElementsNodesAndMaterials"
    1313
    14 #include "./Model.h"
     14#include "./IoModel.h"
    1515#include "../shared/shared.h"
    1616#include "../EnumDefinitions/EnumDefinitions.h"
    1717
    1818
    19 void CreateDataSets(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,DataSet** pparameters,Model* model,ConstDataHandle model_handle){
     19void CreateDataSets(DataSet** pelements,DataSet** pnodes, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
     20
    2021
    2122        /*create parameters common to all solutions: */
    22         CreateParameters(pparameters,model,model_handle);
    23         CreateParametersQmu(pparameters,model,model_handle);
     23        CreateParameters(pparameters,iomodel,iomodel_handle);
     24        CreateParametersQmu(pparameters,iomodel,iomodel_handle);
    2425
    2526        /*This is just a high level driver: */
    26         if (model->analysis_type==ControlAnalysisEnum()){
     27        if (iomodel->analysis_type==ControlAnalysisEnum()){
    2728
    28                 if (model->sub_analysis_type==HorizAnalysisEnum()){
     29                if (iomodel->sub_analysis_type==HorizAnalysisEnum()){
    2930
    30                         CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, model,model_handle);
    31                         CreateConstraintsDiagnosticHoriz(pconstraints,model,model_handle);
    32                         CreateLoadsDiagnosticHoriz(ploads,model,model_handle);
    33                         CreateParametersControl(pparameters,model,model_handle);
     31                        CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     32                        CreateConstraintsDiagnosticHoriz(pconstraints,iomodel,iomodel_handle);
     33                        CreateLoadsDiagnosticHoriz(ploads,iomodel,iomodel_handle);
     34                        CreateParametersControl(pparameters,iomodel,iomodel_handle);
    3435
    3536                }
    36                 else if (model->sub_analysis_type==VertAnalysisEnum()){
     37                else if (iomodel->sub_analysis_type==VertAnalysisEnum()){
    3738
    38                         CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes,pmaterials, model,model_handle);
    39                         CreateConstraintsDiagnosticVert(pconstraints,model,model_handle);
    40                         CreateLoadsDiagnosticVert(ploads,model,model_handle);
     39                        CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     40                        CreateConstraintsDiagnosticVert(pconstraints,iomodel,iomodel_handle);
     41                        CreateLoadsDiagnosticVert(ploads,iomodel,iomodel_handle);
    4142
    4243                }
    43                 else if (model->sub_analysis_type==StokesAnalysisEnum()){
     44                else if (iomodel->sub_analysis_type==StokesAnalysisEnum()){
    4445
    45                         CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, model,model_handle);
    46                         CreateConstraintsDiagnosticStokes(pconstraints,model,model_handle);
    47                         CreateLoadsDiagnosticStokes(ploads,model,model_handle);
    48                         CreateParametersControl(pparameters,model,model_handle);
     46                        CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     47                        CreateConstraintsDiagnosticStokes(pconstraints,iomodel,iomodel_handle);
     48                        CreateLoadsDiagnosticStokes(ploads,iomodel,iomodel_handle);
     49                        CreateParametersControl(pparameters,iomodel,iomodel_handle);
    4950
    5051                }
    51                 else if (model->sub_analysis_type==HutterAnalysisEnum()){
     52                else if (iomodel->sub_analysis_type==HutterAnalysisEnum()){
    5253
    53                         CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, model,model_handle);
    54                         CreateConstraintsDiagnosticHutter(pconstraints,model,model_handle);
    55                         CreateLoadsDiagnosticHutter(ploads,model,model_handle);
    56                         CreateParametersControl(pparameters,model,model_handle);
     54                        CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     55                        CreateConstraintsDiagnosticHutter(pconstraints,iomodel,iomodel_handle);
     56                        CreateLoadsDiagnosticHutter(ploads,iomodel,iomodel_handle);
     57                        CreateParametersControl(pparameters,iomodel,iomodel_handle);
    5758
    5859                }
    5960
    6061        }
    61         else if (model->analysis_type==DiagnosticAnalysisEnum()){
     62        else if (iomodel->analysis_type==DiagnosticAnalysisEnum()){
    6263
    63                 if (model->sub_analysis_type==HorizAnalysisEnum()){
     64                if (iomodel->sub_analysis_type==HorizAnalysisEnum()){
    6465                       
    65                         CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, model,model_handle);
    66                         CreateConstraintsDiagnosticHoriz(pconstraints,model,model_handle);
    67                         CreateLoadsDiagnosticHoriz(ploads,model,model_handle);
    68                         CreateParametersDiagnosticHoriz(pparameters,model,model_handle);
     66                        CreateElementsNodesAndMaterialsDiagnosticHoriz(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     67                        CreateConstraintsDiagnosticHoriz(pconstraints,iomodel,iomodel_handle);
     68                        CreateLoadsDiagnosticHoriz(ploads,iomodel,iomodel_handle);
     69                        CreateParametersDiagnosticHoriz(pparameters,iomodel,iomodel_handle);
    6970                               
    7071                }
    71                 else if (model->sub_analysis_type==VertAnalysisEnum()){
     72                else if (iomodel->sub_analysis_type==VertAnalysisEnum()){
    7273               
    73                         CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes,pmaterials, model,model_handle);
    74                         CreateConstraintsDiagnosticVert(pconstraints,model,model_handle);
    75                         CreateLoadsDiagnosticVert(ploads,model,model_handle);
     74                        CreateElementsNodesAndMaterialsDiagnosticVert(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     75                        CreateConstraintsDiagnosticVert(pconstraints,iomodel,iomodel_handle);
     76                        CreateLoadsDiagnosticVert(ploads,iomodel,iomodel_handle);
    7677                       
    7778                }
    78                 else if (model->sub_analysis_type==StokesAnalysisEnum()){
     79                else if (iomodel->sub_analysis_type==StokesAnalysisEnum()){
    7980
    80                         CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, model,model_handle);
    81                         CreateConstraintsDiagnosticStokes(pconstraints,model,model_handle);
    82                         CreateLoadsDiagnosticStokes(ploads,model,model_handle);
     81                        CreateElementsNodesAndMaterialsDiagnosticStokes(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     82                        CreateConstraintsDiagnosticStokes(pconstraints,iomodel,iomodel_handle);
     83                        CreateLoadsDiagnosticStokes(ploads,iomodel,iomodel_handle);
    8384                       
    8485                }
    85                 else if (model->sub_analysis_type==HutterAnalysisEnum()){
     86                else if (iomodel->sub_analysis_type==HutterAnalysisEnum()){
    8687
    87                         CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, model,model_handle);
    88                         CreateConstraintsDiagnosticHutter(pconstraints,model,model_handle);
    89                         CreateLoadsDiagnosticHutter(ploads,model,model_handle);
     88                        CreateElementsNodesAndMaterialsDiagnosticHutter(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     89                        CreateConstraintsDiagnosticHutter(pconstraints,iomodel,iomodel_handle);
     90                        CreateLoadsDiagnosticHutter(ploads,iomodel,iomodel_handle);
    9091                       
    9192                }
    9293        }
    93         else if (model->analysis_type==SlopeComputeAnalysisEnum()){
     94        else if (iomodel->analysis_type==SlopeComputeAnalysisEnum()){
    9495
    95                 CreateElementsNodesAndMaterialsSlopeCompute(pelements,pnodes,pmaterials, model,model_handle);
    96                 CreateConstraintsSlopeCompute(pconstraints,model,model_handle);
    97                 CreateLoadsSlopeCompute(ploads,model,model_handle);
     96                CreateElementsNodesAndMaterialsSlopeCompute(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     97                CreateConstraintsSlopeCompute(pconstraints,iomodel,iomodel_handle);
     98                CreateLoadsSlopeCompute(ploads,iomodel,iomodel_handle);
    9899       
    99100        }
    100         else if (model->analysis_type==ThermalAnalysisEnum()){
     101        else if (iomodel->analysis_type==ThermalAnalysisEnum()){
    101102
    102                 CreateElementsNodesAndMaterialsThermal(pelements,pnodes,pmaterials, model,model_handle);
    103                 CreateConstraintsThermal(pconstraints,model,model_handle);
    104                 CreateLoadsThermal(ploads,model,model_handle);
    105                 CreateParametersThermal(pparameters,model,model_handle);
     103                CreateElementsNodesAndMaterialsThermal(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     104                CreateConstraintsThermal(pconstraints,iomodel,iomodel_handle);
     105                CreateLoadsThermal(ploads,iomodel,iomodel_handle);
     106                CreateParametersThermal(pparameters,iomodel,iomodel_handle);
    106107                                       
    107108        }
    108         else if (model->analysis_type==MeltingAnalysisEnum()){
     109        else if (iomodel->analysis_type==MeltingAnalysisEnum()){
    109110                       
    110                 CreateElementsNodesAndMaterialsMelting(pelements,pnodes,pmaterials, model,model_handle);
    111                 CreateConstraintsMelting(pconstraints,model,model_handle);
    112                 CreateLoadsMelting(ploads,model,model_handle);
    113                 CreateParametersMelting(pparameters,model,model_handle);
     111                CreateElementsNodesAndMaterialsMelting(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     112                CreateConstraintsMelting(pconstraints,iomodel,iomodel_handle);
     113                CreateLoadsMelting(ploads,iomodel,iomodel_handle);
     114                CreateParametersMelting(pparameters,iomodel,iomodel_handle);
    114115        }
    115         else if (model->analysis_type==PrognosticAnalysisEnum()){
     116        else if (iomodel->analysis_type==PrognosticAnalysisEnum()){
    116117
    117                 CreateElementsNodesAndMaterialsPrognostic(pelements,pnodes,pmaterials, model,model_handle);
    118                 CreateConstraintsPrognostic(pconstraints,model,model_handle);
    119                 CreateLoadsPrognostic(ploads,model,model_handle);
    120                 CreateParametersPrognostic(pparameters,model,model_handle);
     118                CreateElementsNodesAndMaterialsPrognostic(pelements,pnodes,pmaterials, iomodel,iomodel_handle);
     119                CreateConstraintsPrognostic(pconstraints,iomodel,iomodel_handle);
     120                CreateLoadsPrognostic(ploads,iomodel,iomodel_handle);
     121                CreateParametersPrognostic(pparameters,iomodel,iomodel_handle);
    121122                                       
    122123        }
    123124        else{
    124                 throw ErrorException(__FUNCT__,exprintf("%s%i%s%i%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: ",iomodel->analysis_type," sub_analysis_type: ",iomodel->sub_analysis_type," not supported yet!"));
    125126        }
    126 
    127127                       
    128128}
  • issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp

    r1805 r1838  
    1212#include "../shared/shared.h"
    1313#include "../MeshPartitionx/MeshPartitionx.h"
    14 #include "./Model.h"
    15 
    16 void CreateParameters(DataSet** pparameters,Model* model,ConstDataHandle model_handle){
     14#include "./IoModel.h"
     15
     16void CreateParameters(DataSet** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
    1717       
    1818        int i;
     
    3131        count++;
    3232        param= new Param(count,"analysis_type",INTEGER);
    33         param->SetInteger(model->analysis_type);
     33        param->SetInteger(iomodel->analysis_type);
    3434        parameters->AddObject(param);
    3535
    3636        count++;
    3737        param= new Param(count,"sub_analysis_type",INTEGER);
    38         param->SetInteger(model->sub_analysis_type);
     38        param->SetInteger(iomodel->sub_analysis_type);
    3939        parameters->AddObject(param);
    4040
    4141        //dimension 2d or 3d:
    42         if (strcmp(model->meshtype,"2d")==0)dim=2;
     42        if (strcmp(iomodel->meshtype,"2d")==0)dim=2;
    4343        else dim=3;
    4444
     
    5151        count++;
    5252        param= new Param(count,"ishutter",INTEGER);
    53         param->SetInteger(model->ishutter);
     53        param->SetInteger(iomodel->ishutter);
    5454        parameters->AddObject(param);
    5555
    5656        count++;
    5757        param= new Param(count,"ismacayealpattyn",INTEGER);
    58         param->SetInteger(model->ismacayealpattyn);
     58        param->SetInteger(iomodel->ismacayealpattyn);
    5959        parameters->AddObject(param);
    6060
     
    6262        count++;
    6363        param= new Param(count,"isstokes",INTEGER);
    64         param->SetInteger(model->isstokes);
     64        param->SetInteger(iomodel->isstokes);
     65        parameters->AddObject(param);
     66
     67        //control: thermal static
     68        count++;
     69        param= new Param(count,"thermalstatic",INTEGER);
     70        param->SetInteger(iomodel->thermalstatic);
    6571        parameters->AddObject(param);
    6672
    6773        /*debug: */
    6874        param= new Param(count,"debug",INTEGER);
    69         param->SetInteger(model->debug);
     75        param->SetInteger(iomodel->debug);
    7076        parameters->AddObject(param);
    7177
     
    7379        count++;
    7480        param= new Param(count,"eps_res",DOUBLE);
    75         param->SetDouble(model->eps_res);
     81        param->SetDouble(iomodel->eps_res);
    7682        parameters->AddObject(param);
    7783
     
    7985        count++;
    8086        param= new Param(count,"eps_rel",DOUBLE);
    81         param->SetDouble(model->eps_rel);
     87        param->SetDouble(iomodel->eps_rel);
    8288        parameters->AddObject(param);
    8389
     
    8591        count++;
    8692        param= new Param(count,"eps_abs",DOUBLE);
    87         param->SetDouble(model->eps_abs);
     93        param->SetDouble(iomodel->eps_abs);
    8894        parameters->AddObject(param);
    8995
     
    9197        count++;
    9298        param= new Param(count,"yts",DOUBLE);
    93         param->SetDouble(model->yts);
     99        param->SetDouble(iomodel->yts);
    94100        parameters->AddObject(param);
    95101
     
    97103        count++;
    98104        param= new Param(count,"dt",DOUBLE);
    99         param->SetDouble(model->dt);
     105        param->SetDouble(iomodel->dt);
    100106        parameters->AddObject(param);
    101107
     
    103109        count++;
    104110        param= new Param(count,"ndt",DOUBLE);
    105         param->SetDouble(model->ndt);
     111        param->SetDouble(iomodel->ndt);
    106112        parameters->AddObject(param);
    107113
     
    109115        count++;
    110116        param= new Param(count,"penalty_offset",DOUBLE);
    111         param->SetDouble(model->penalty_offset);
     117        param->SetDouble(iomodel->penalty_offset);
    112118        parameters->AddObject(param);
    113119
     
    115121        count++;
    116122        param= new Param(count,"sparsity",DOUBLE);
    117         param->SetDouble(model->sparsity);
     123        param->SetDouble(iomodel->sparsity);
    118124        parameters->AddObject(param);
    119125
     
    121127        count++;
    122128        param= new Param(count,"lowmem",INTEGER);
    123         param->SetInteger(model->lowmem);
     129        param->SetInteger(iomodel->lowmem);
    124130        parameters->AddObject(param);
    125131
     
    127133        count++;
    128134        param= new Param(count,"connectivity",INTEGER);
    129         param->SetInteger(model->connectivity);
     135        param->SetInteger(iomodel->connectivity);
    130136        parameters->AddObject(param);
    131137
     
    133139        count++;
    134140        param= new Param(count,"beta",DOUBLE);
    135         param->SetDouble(model->beta);
     141        param->SetDouble(iomodel->beta);
    136142        parameters->AddObject(param);
    137143
     
    139145        count++;
    140146        param= new Param(count,"meltingpoint",DOUBLE);
    141         param->SetDouble(model->meltingpoint);
     147        param->SetDouble(iomodel->meltingpoint);
    142148        parameters->AddObject(param);
    143149
     
    145151        count++;
    146152        param= new Param(count,"latentheat",DOUBLE);
    147         param->SetDouble(model->latentheat);
     153        param->SetDouble(iomodel->latentheat);
    148154        parameters->AddObject(param);
    149155
     
    151157        count++;
    152158        param= new Param(count,"heatcapacity",DOUBLE);
    153         param->SetDouble(model->heatcapacity);
     159        param->SetDouble(iomodel->heatcapacity);
    154160        parameters->AddObject(param);
    155161
     
    157163        count++;
    158164        param= new Param(count,"penalty_melting",DOUBLE);
    159         param->SetDouble(model->penalty_melting);
     165        param->SetDouble(iomodel->penalty_melting);
    160166        parameters->AddObject(param);
    161167
     
    163169        count++;
    164170        param= new Param(count,"min_thermal_constraints",INTEGER);
    165         param->SetInteger(model->min_thermal_constraints);
     171        param->SetInteger(iomodel->min_thermal_constraints);
    166172        parameters->AddObject(param);
    167173
     
    169175        count++;
    170176        param= new Param(count,"stokesreconditioning",DOUBLE);
    171         param->SetDouble(model->stokesreconditioning);
     177        param->SetDouble(iomodel->stokesreconditioning);
    172178        parameters->AddObject(param);
    173179
     
    175181        count++;
    176182        param= new Param(count,"waitonlock",INTEGER);
    177         param->SetInteger(model->waitonlock);
     183        param->SetInteger(iomodel->waitonlock);
    178184        parameters->AddObject(param);
    179185
     
    181187        count++;
    182188        param= new Param(count,"solverstring",STRING);
    183         param->SetString(model->solverstring);
     189        param->SetString(iomodel->solverstring);
    184190        parameters->AddObject(param);
    185191
     
    187193        count++;
    188194        param= new Param(count,"plot",INTEGER);
    189         param->SetInteger(model->plot);
     195        param->SetInteger(iomodel->plot);
    190196        parameters->AddObject(param);
    191197
     
    193199        count++;
    194200        param= new Param(count,"numberofnodes",INTEGER);
    195         param->SetInteger(model->numberofnodes);
     201        param->SetInteger(iomodel->numberofnodes);
    196202        parameters->AddObject(param);
    197203
    198204        /*Deal with numberofdofspernode: */
    199         DistributeNumDofs(&numberofdofspernode,model->analysis_type,model->sub_analysis_type);
     205        DistributeNumDofs(&numberofdofspernode,iomodel->analysis_type,iomodel->sub_analysis_type);
    200206
    201207        count++;
    202208        param= new Param(count,"numberofdofspernode",INTEGER);
    203209        param->SetInteger(numberofdofspernode);
    204         parameters->AddObject(param);
    205 
     210        parameters->AddObject(param)
     211                ;
    206212        /*numrifts: */
    207213        ModelFetchData((void**)&model->riftinfo,&model->numrifts,NULL,model_handle,"riftinfo","Matrix","Mat");
Note: See TracChangeset for help on using the changeset viewer.