Ignore:
Timestamp:
08/25/09 13:04:05 (16 years ago)
Author:
Eric.Larour
Message:

Model and FemModel are now classes in their own right.
This changes the cores quite a bit.

File:
1 edited

Legend:

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

    r1820 r1881  
    6262        lockname=argv[4];
    6363
     64        /*Initialize model structure: */
     65        model=new Model();
     66
    6467        /*Open handle to data on disk: */
    6568        fid=pfopen(inputfilename,"rb");
     
    7073        _printf_("read and create finite element model:\n");
    7174        _printf_("\n   reading diagnostic horiz model data:\n");
    72         CreateFemModel(model->DiagnosticHorizontal(),fid,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
     75        model->AddFormulation(fid,DiagnosticAnalysisEnum(),HorizAnalysisEnum());
     76
    7377        _printf_("\n   reading diagnostic vert model data:\n");
    74         CreateFemModel(model->DiagnosticVertical(),fid,DiagnosticAnalysisEnum(),VertAnalysisEnum());
     78        model->AddFormulation(fid,DiagnosticAnalysisEnum(),VertAnalysisEnum());
     79       
    7580        _printf_("\n   reading diagnostic stokes model data:\n");
    76         CreateFemModel(model->DiagnosticStokes(),fid,DiagnosticAnalysisEnum(),StokesAnalysisEnum());
     81        model->AddFormulation(fid,DiagnosticAnalysisEnum(),StokesAnalysisEnum());
     82       
    7783        _printf_("\n   reading diagnostic hutter model data:\n");
    78         CreateFemModel(model->DiagnosticHutter(),fid,DiagnosticAnalysisEnum(),HutterAnalysisEnum());
     84        model->AddFormulation(fid,DiagnosticAnalysisEnum(),HutterAnalysisEnum());
     85       
    7986        _printf_("\n   reading surface and bed slope computation model data:\n");
    80         CreateFemModel(model->Slope(),fid,SlopeComputeAnalysisEnum(),NoneAnalysisEnum());
     87        model->AddFormulation(fid,SlopeComputeAnalysisEnum(),NoneAnalysisEnum());
     88
    8189        _printf_("\n   reading prognositc model data:\n");
    82         CreateFemModel(model->Prognostic(),fid,PrognosticAnalysisEnum(),NoneAnalysisEnum());
     90        model->AddFormulation(fid,PrognosticAnalysisEnum(),NoneAnalysisEnum());
    8391       
    8492        /*Do we run in 3d?, in which case we need thermal and melting also:*/
    85         model->DiagnosticHorizontal()->parameters->FindParam((void*)&dim,"dim");
     93        model->FindParam(&dim,"dim");
    8694        if(dim==3){
    8795                _printf_("read and create thermal finite element model:\n");
    88                 CreateFemModel(model->Thermal(),fid,ThermalAnalysisEnum(),TransientAnalysisEnum());
     96                model->AddFormulation(fid,ThermalAnalysisEnum(),TransientAnalysisEnum());
    8997                _printf_("read and create melting finite element model:\n");
    90                 CreateFemModel(model->Melting(),fid,MeltingAnalysisEnum(),TransientAnalysisEnum());
     98                model->AddFormulation(fid,MeltingAnalysisEnum(),TransientAnalysisEnum());
    9199        }
    92100
    93101        _printf_("initialize inputs:\n");
     102       
     103        model->FindParam(&u_g,"u_g",ThermalAnalysisEnum());
     104        model->FindParam(&m_g,"m_g",ThermalAnalysisEnum());
     105        model->FindParam(&a_g,"a_g",ThermalAnalysisEnum());
     106        model->FindParam(&numberofnodes,"numberofnodes");
     107        model->FindParam(&dt,"dt");
     108        model->FindParam(&yts,"yts");
     109        model->FindParam(&waitonlock,"waitonlock");
     110        model->FindParam(&qmu_analysis,"qmu_analysis");
     111
     112
    94113        inputs=new ParameterInputs;
    95         model->Thermal()->parameters->FindParam((void*)&numberofnodes,"numberofnodes");
    96        
    97         model->Thermal()->parameters->FindParam((void*)&u_g,"u_g");
    98114        inputs->Add("velocity",u_g,3,numberofnodes);
    99 
    100         model->Thermal()->parameters->FindParam((void*)&m_g,"m_g");
    101115        inputs->Add("melting",m_g,1,numberofnodes);
    102 
    103         model->Thermal()->parameters->FindParam((void*)&a_g,"a_g");
    104116        inputs->Add("accumulation",a_g,1,numberofnodes);
    105 
    106         model->Thermal()->parameters->FindParam((void*)&dt,"dt");
    107         model->Thermal()->parameters->FindParam((void*)&yts,"yts");
    108117        inputs->Add("dt",dt*yts);
    109118       
     
    112121
    113122        /*are we running the solution sequence, or a qmu wrapper around it? : */
    114         model->Thermal()->parameters->FindParam((void*)&qmu_analysis,"qmu_analysis");
    115123        if(!qmu_analysis){
    116124
     
    141149
    142150        _printf_("write lock file:\n");
    143         model->DiagnosticHorizontal()->parameters->FindParam((void*)&waitonlock,"waitonlock");
    144151        if (waitonlock){
    145152                WriteLockFile(lockname);
Note: See TracChangeset for help on using the changeset viewer.