Changeset 1826


Ignore:
Timestamp:
08/24/09 17:46:34 (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/diagnostic.cpp

    r1708 r1826  
    2626        int   qmu_analysis=0;
    2727
    28         /*Fem models : */
    29         FemModel femmodels[5];
     28        /*Model: */
     29        Model* model=NULL;
    3030
    3131        /*Results: */
     
    5656        lockname=argv[4];
    5757
     58        /*Initialize model structure: */
     59        model=new Model();
     60
    5861        /*Open handle to data on disk: */
    5962        fid=pfopen(inputfilename,"rb");
     
    6164        _printf_("read and create finite element model:\n");
    6265        _printf_("\n   reading diagnostic horiz model data:\n");
    63         CreateFemModel(&femmodels[0],fid,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
     66        CreateFemModel(model->DiagnosticHorizontal(),fid,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
    6467        _printf_("\n   reading diagnostic vert model data:\n");
    65         CreateFemModel(&femmodels[1],fid,DiagnosticAnalysisEnum(),VertAnalysisEnum());
     68        CreateFemModel(model->DiagnosticVertical(),fid,DiagnosticAnalysisEnum(),VertAnalysisEnum());
    6669        _printf_("\n   reading diagnostic stokes model data:\n");
    67         CreateFemModel(&femmodels[2],fid,DiagnosticAnalysisEnum(),StokesAnalysisEnum());
     70        CreateFemModel(model->DiagnosticStokes(),fid,DiagnosticAnalysisEnum(),StokesAnalysisEnum());
    6871        _printf_("\n   reading diagnostic hutter model data:\n");
    69         CreateFemModel(&femmodels[3],fid,DiagnosticAnalysisEnum(),HutterAnalysisEnum());
     72        CreateFemModel(model->DiagnosticHutter(),fid,DiagnosticAnalysisEnum(),HutterAnalysisEnum());
    7073        _printf_("\n   reading surface and bed slope computation model data:\n");
    71         CreateFemModel(&femmodels[4],fid,SlopeComputeAnalysisEnum(),NoneAnalysisEnum());
     74        CreateFemModel(model->Slope(),fid,SlopeComputeAnalysisEnum(),NoneAnalysisEnum());
    7275
    7376        _printf_("initialize inputs:\n");
    74         femmodels[0].parameters->FindParam((void*)&u_g_initial,"u_g");
    75         femmodels[0].parameters->FindParam((void*)&numberofnodes,"numberofnodes");
     77        model->DiagnosticHorizontal()->parameters->FindParam((void*)&u_g_initial,"u_g");
     78        model->DiagnosticHorizontal()->parameters->FindParam((void*)&numberofnodes,"numberofnodes");
    7679
    7780        inputs=new ParameterInputs;
     
    7982       
    8083        /*erase velocities: */
    81         param=(Param*)femmodels[0].parameters->FindParamObject("u_g");
    82         femmodels[0].parameters->DeleteObject((Object*)param);
     84        param=(Param*)model->DiagnosticHorizontal()->parameters->FindParamObject("u_g");
     85        model->DiagnosticHorizontal()->parameters->DeleteObject((Object*)param);
    8386
    8487        _printf_("initialize results:\n");
     
    8689
    8790        /*are we running the solution sequence, or a qmu wrapper around it? : */
    88         femmodels[0].parameters->FindParam((void*)&qmu_analysis,"qmu_analysis");
     91        model->DiagnosticHorizontal()->parameters->FindParam((void*)&qmu_analysis,"qmu_analysis");
    8992        if(!qmu_analysis){
    9093
    9194                /*run diagnostic analysis: */
    9295                _printf_("call computational core:\n");
    93                 diagnostic_core(results,femmodels,inputs);
     96                diagnostic_core(results,model,inputs);
    9497
    9598        }
     
    99102
    100103                #ifdef _HAVE_DAKOTA_
    101                 Qmux(&femmodels[0],inputs,DiagnosticAnalysisEnum(),NoneAnalysisEnum());
     104                Qmux(model,inputs,DiagnosticAnalysisEnum(),NoneAnalysisEnum());
    102105                #else
    103106                throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!");
     
    110113
    111114        _printf_("process results:\n");
    112         ProcessResults(&results,&femmodels[0],DiagnosticAnalysisEnum());
     115        ProcessResults(&results,model,DiagnosticAnalysisEnum());
    113116       
    114117        _printf_("write results to disk:\n");
     
    116119
    117120        _printf_("write lock file:\n");
    118         femmodels[0].parameters->FindParam((void*)&waitonlock,"waitonlock");
     121        model->DiagnosticHorizontal()->parameters->FindParam((void*)&waitonlock,"waitonlock");
    119122        if (waitonlock){
    120123                WriteLockFile(lockname);
Note: See TracChangeset for help on using the changeset viewer.