Changeset 1830


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

Brachning back from issm.controlstatic, by hand

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/parallel/thermal.cpp

    r1719 r1830  
    2727        int   numberofnodes;
    2828
    29         /*Fem models : */
    30         FemModel femmodels[2];
     29        /*Model: */
     30        Model* model=NULL;
    3131
    3232        /*initial velocity and pressure: */
     
    6464        fid=pfopen(inputfilename,"rb");
    6565
     66        /*Initialize model structure: */
     67        model=new Model();
     68
    6669        _printf_("read and create thermal finite element model:\n");
    67         CreateFemModel(&femmodels[0],fid,ThermalAnalysisEnum(),0);
     70        CreateFemModel(model->Thermal(),fid,ThermalAnalysisEnum(),0);
    6871        _printf_("read and create melting finite element model:\n");
    69         CreateFemModel(&femmodels[1],fid,MeltingAnalysisEnum(),0);
     72        CreateFemModel(model->Melting(),fid,MeltingAnalysisEnum(),0);
    7073
    7174        _printf_("initialize inputs:\n");
    72         femmodels[0].parameters->FindParam((void*)&u_g,"u_g");
    73         femmodels[0].parameters->FindParam((void*)&p_g,"p_g");
    74         femmodels[0].parameters->FindParam((void*)&numberofnodes,"numberofnodes");
    75         femmodels[0].parameters->FindParam((void*)&waitonlock,"waitonlock");
    76         femmodels[0].parameters->FindParam((void*)&dt,"dt");
    77         femmodels[0].parameters->FindParam((void*)&yts,"yts");
     75        model->Thermal()->parameters->FindParam((void*)&u_g,"u_g");
     76        model->Thermal()->parameters->FindParam((void*)&p_g,"p_g");
     77        model->Thermal()->parameters->FindParam((void*)&numberofnodes,"numberofnodes");
     78        model->Thermal()->parameters->FindParam((void*)&waitonlock,"waitonlock");
     79        model->Thermal()->parameters->FindParam((void*)&dt,"dt");
     80        model->Thermal()->parameters->FindParam((void*)&yts,"yts");
    7881
    7982        inputs=new ParameterInputs;
     
    8790
    8891        //erase velocities and pressure embedded in parameters
    89         param=(Param*)femmodels[0].parameters->FindParamObject("u_g");
    90         param=(Param*)femmodels[0].parameters->FindParamObject("velocity");
    91         femmodels[0].parameters->DeleteObject((Object*)param);
    92         param=(Param*)femmodels[0].parameters->FindParamObject("p_g");
    93         femmodels[0].parameters->DeleteObject((Object*)param);
    94         param=(Param*)femmodels[1].parameters->FindParamObject("u_g");
    95         femmodels[1].parameters->DeleteObject((Object*)param);
    96         param=(Param*)femmodels[1].parameters->FindParamObject("p_g");
    97         femmodels[1].parameters->DeleteObject((Object*)param);
     92        param=(Param*)model->Thermal()->parameters->FindParamObject("u_g");
     93        param=(Param*)model->Thermal()->parameters->FindParamObject("velocity");
     94        model->Thermal()->parameters->DeleteObject((Object*)param);
     95        param=(Param*)model->Thermal()->parameters->FindParamObject("p_g");
     96        model->Thermal()->parameters->DeleteObject((Object*)param);
     97        param=(Param*)model->Melting()->parameters->FindParamObject("u_g");
     98        model->Melting()->parameters->DeleteObject((Object*)param);
     99        param=(Param*)model->Melting()->parameters->FindParamObject("p_g");
     100        model->Melting()->parameters->DeleteObject((Object*)param);
    98101
    99102        /*are we running the solutoin sequence, or a qmu wrapper around it? : */
    100         femmodels[0].parameters->FindParam((void*)&qmu_analysis,"qmu_analysis");
     103        model->Thermal()->parameters->FindParam((void*)&qmu_analysis,"qmu_analysis");
    101104        if(!qmu_analysis){
    102105
    103106                /*run thermal analysis: */
    104107                _printf_("call computational core:\n");
    105                 thermal_core(results,femmodels,inputs);
     108                thermal_core(results,model,inputs);
    106109
    107110        }
     
    111114       
    112115                #ifdef _HAVE_DAKOTA_
    113                 Qmux(&femmodels[0],inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());
     116                Qmux(model,inputs,ThermalAnalysisEnum(),NoneAnalysisEnum());
    114117                #else
    115118                throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!");
     
    122125               
    123126        _printf_("process results:\n");
    124         ProcessResults(&results,&femmodels[0],ThermalAnalysisEnum());
     127        ProcessResults(&results,model,ThermalAnalysisEnum());
    125128       
    126129        _printf_("write results to disk:\n");
     
    128131
    129132        _printf_("write lock file:\n");
    130         femmodels[0].parameters->FindParam((void*)&waitonlock,"waitonlock");
     133        model->Thermal()->parameters->FindParam((void*)&waitonlock,"waitonlock");
    131134
    132135        if (waitonlock){
Note: See TracChangeset for help on using the changeset viewer.