Changeset 4028


Ignore:
Timestamp:
06/09/10 16:14:35 (15 years ago)
Author:
Eric.Larour
Message:

Thinking about shuffling analysis_type, sub_analysis_type and solution_type

Location:
issm/trunk/src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h

    r4018 r4028  
    2121        /*}}}*/
    2222        /*Analysis types {{{1 */
     23        SolutionTypeEnum,
    2324        AnalysisEnum,
    2425        AnalysisTypeEnum,
  • issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp

    r4025 r4028  
    1616
    1717
    18 void CreateDataSets(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type,int nummodels,int analysis_counter){
     18void CreateDataSets(DataSet** pelements,DataSet** pnodes, DataSet** pvertices, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int solution_type,int analysis_type,int nummodels,int analysis_counter){
    1919
    2020        bool continuous=true;
     
    116116       
    117117        /*Generate objects that are not dependent on any analysis_type: */
    118         CreateParameters(pparameters,iomodel,iomodel_handle,analysis_type);
     118        CreateParameters(pparameters,iomodel,iomodel_handle,solution_type,analysis_type);
    119119
    120120        /*Sort datasets: */
  • issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r4025 r4028  
    1212#include "./ModelProcessorx.h"
    1313
    14 void CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type){
     14void CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int solution_type,int analysis_type){
    1515       
    1616        int i;
     
    3131        parameters = new Parameters(ParametersEnum);
    3232
     33        parameters->AddObject(new    IntParam(SolutionTypeEnum,solution_type));
    3334        if (iomodel->dim==2) parameters->AddObject(new IntParam(DimEnum,2));
    3435        else parameters->AddObject(new IntParam(DimEnum,3));
    3536        parameters->AddObject(new StringParam(OutputFileNameEnum,iomodel->outputfilename));
    36         parameters->AddObject(new   BoolParam(IsHutterEnum,iomodel->ishutter));
    37         parameters->AddObject(new   BoolParam(IsMacAyealPattynEnum,iomodel->ismacayealpattyn));
    38         parameters->AddObject(new   BoolParam(IsStokesEnum,iomodel->isstokes));
    39         parameters->AddObject(new    IntParam(VerboseEnum,iomodel->verbose));
     37        parameters->AddObject(new BoolParam(IsHutterEnum,iomodel->ishutter));
     38        parameters->AddObject(new BoolParam(IsMacAyealPattynEnum,iomodel->ismacayealpattyn));
     39        parameters->AddObject(new BoolParam(IsStokesEnum,iomodel->isstokes));
     40        parameters->AddObject(new IntParam(VerboseEnum,iomodel->verbose));
    4041        parameters->AddObject(new DoubleParam(EpsResEnum,iomodel->eps_res));
    4142        parameters->AddObject(new DoubleParam(EpsRelEnum,iomodel->eps_rel));
    4243        parameters->AddObject(new DoubleParam(EpsAbsEnum,iomodel->eps_abs));
    43         parameters->AddObject(new    IntParam(MaxNonlinearIterationsEnum,iomodel->max_nonlinear_iterations));
     44        parameters->AddObject(new IntParam(MaxNonlinearIterationsEnum,iomodel->max_nonlinear_iterations));
    4445        parameters->AddObject(new DoubleParam(EpsVelEnum,iomodel->epsvel));
    4546        parameters->AddObject(new DoubleParam(YtsEnum,iomodel->yts));
     
    4849        parameters->AddObject(new DoubleParam(PenaltyOffsetEnum,iomodel->penalty_offset));
    4950        parameters->AddObject(new DoubleParam(SparsityEnum,iomodel->sparsity));
    50         parameters->AddObject(new   BoolParam(LowmemEnum,iomodel->lowmem));
    51         parameters->AddObject(new    IntParam(ConnectivityEnum,iomodel->connectivity));
     51        parameters->AddObject(new BoolParam(LowmemEnum,iomodel->lowmem));
     52        parameters->AddObject(new IntParam(ConnectivityEnum,iomodel->connectivity));
    5253        parameters->AddObject(new DoubleParam(BetaEnum,iomodel->beta));
    5354        parameters->AddObject(new DoubleParam(MeltingPointEnum,iomodel->meltingpoint));
    5455        parameters->AddObject(new DoubleParam(LatentHeatEnum,iomodel->latentheat));
    5556        parameters->AddObject(new DoubleParam(HeatCapacityEnum,iomodel->heatcapacity));
    56         parameters->AddObject(new   BoolParam(ArtDiffEnum,iomodel->artdiff));
     57        parameters->AddObject(new BoolParam(ArtDiffEnum,iomodel->artdiff));
    5758        parameters->AddObject(new DoubleParam(PenaltyMeltingEnum,iomodel->penalty_melting));
    58         parameters->AddObject(new    IntParam(MinThermalConstraintsEnum,iomodel->min_thermal_constraints));
    59         parameters->AddObject(new    IntParam(StabilizeConstraintsEnum,iomodel->stabilize_constraints));
     59        parameters->AddObject(new IntParam(MinThermalConstraintsEnum,iomodel->min_thermal_constraints));
     60        parameters->AddObject(new IntParam(StabilizeConstraintsEnum,iomodel->stabilize_constraints));
    6061        parameters->AddObject(new DoubleParam(StokesReconditioningEnum,iomodel->stokesreconditioning));
    6162        parameters->AddObject(new DoubleParam(ViscosityOvershootEnum,iomodel->viscosity_overshoot));
    62         parameters->AddObject(new   BoolParam(WaitOnLockEnum,iomodel->waitonlock));
     63        parameters->AddObject(new BoolParam(WaitOnLockEnum,iomodel->waitonlock));
    6364        parameters->AddObject(new StringParam(SolverStringEnum,iomodel->solverstring));
    64         parameters->AddObject(new    IntParam(NumberOfVerticesEnum,iomodel->numberofvertices));
    65         parameters->AddObject(new    IntParam(NumberOfElementsEnum,iomodel->numberofelements));
     65        parameters->AddObject(new IntParam(NumberOfVerticesEnum,iomodel->numberofvertices));
     66        parameters->AddObject(new IntParam(NumberOfElementsEnum,iomodel->numberofelements));
    6667
    6768        /*Deal with more complex parameters*/
     
    7475
    7576        DistributeNumDofs(&numberofdofspernode,analysis_type);
    76         parameters->AddObject(new    IntParam(NumberOfDofsPerNodeEnum,numberofdofspernode));
     77        parameters->AddObject(new IntParam(NumberOfDofsPerNodeEnum,numberofdofspernode));
    7778
    7879        IoModelFetchData(&iomodel->riftinfo,&iomodel->numrifts,NULL,iomodel_handle,"riftinfo");
    79         parameters->AddObject(new    IntParam(NumRiftsEnum,iomodel->numrifts));
     80        parameters->AddObject(new IntParam(NumRiftsEnum,iomodel->numrifts));
    8081        xfree((void**)&iomodel->riftinfo);
    8182
    82         parameters->AddObject(new    IntParam(NumOutputEnum,iomodel->numoutput));
     83        parameters->AddObject(new IntParam(NumOutputEnum,iomodel->numoutput));
    8384        if(iomodel->numoutput){
    8485                parameteroutput=(char**)xmalloc(iomodel->numoutput*sizeof(char*));
  • issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h

    r4025 r4028  
    1414
    1515/*Creation of fem datasets: general drivers*/
    16 void  CreateDataSets(DataSet** pelements,DataSet** pnodes,DataSet** pvertices, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type,int nummodels,int analysis_counter);
     16void  CreateDataSets(DataSet** pelements,DataSet** pnodes,DataSet** pvertices, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int solution_type,int analysis_type,int nummodels,int analysis_counter);
    1717void  CreateElementsVerticesAndMaterials(DataSet** pelements,DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle,int nummodels);
    18 void  CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type);
     18void  CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int solution_type,int analysis_type);
    1919void  CreateParametersControl(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type);
    2020void  CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type);
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r4021 r4028  
    880880void  Tria::CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type){
    881881
    882         /*if debugging mode, check that all pointers exist*/
     882        /*asserts: {{{2*/
    883883        ISSMASSERT(this->nodes && this->matice && this->matpar && this->parameters && this->inputs);
     884        /*}}}*/
    884885
    885886        /*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
  • issm/trunk/src/c/objects/FemModel.cpp

    r4009 r4028  
    2020/*Object constructors and destructor*/
    2121/*FUNCTION FemModel::constructor {{{1*/
    22 FemModel::FemModel(ConstDataHandle IOMODEL,int* analyses, int nummodels){
     22FemModel::FemModel(ConstDataHandle IOMODEL,int in_solution_type,int* analyses, int nummodels){
    2323
    2424        /*intermediary*/
     
    2727        int analysis_type;
    2828
     29        /*Initialize internal data: */
    2930        this->nummodels=nummodels;
     31        this->solution_type=in_solution_type;
    3032        analysis_counter=nummodels-1; //point to last analysis_type carried out.
    3133       
     
    5456       
    5557                _printf_("   create datasets:\n");
    56                 CreateDataSets(&elements,&nodes,&vertices,&materials,&constraints,&loads,&parameters,iomodel,IOMODEL,analysis_type,nummodels,i);
     58                CreateDataSets(&elements,&nodes,&vertices,&materials,&constraints,&loads,&parameters,iomodel,IOMODEL,solution_type,analysis_type,nummodels,i);
    5759
    5860                _printf_("   create degrees of freedom: \n");
  • issm/trunk/src/c/objects/FemModel.h

    r4004 r4028  
    2424
    2525                int                 nummodels;
     26                int                 solution_type;
    2627                int*                analysis_type_list; //list of analyses this femmodel is going to carry out
    2728                int                 analysis_counter; //counter into analysis_type_list
     
    4647
    4748                /*constructors, destructors: */
    48                 FemModel(ConstDataHandle IOMODEL,int* analyses, int nummodels);
     49                FemModel(ConstDataHandle IOMODEL,int solution_type,int* analyses, int nummodels);
    4950                ~FemModel();
    5051
  • issm/trunk/src/c/solutions/diagnostic.cpp

    r4021 r4028  
    3939
    4040        int analyses[5]={DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticStokesAnalysisEnum,DiagnosticHutterAnalysisEnum,SlopeComputeAnalysisEnum};
     41        int solution_type=DiagnosticAnalysisEnum;
    4142
    4243        MODULEBOOT();
     
    6667
    6768        _printf_("create finite element model, using analyses types statically defined above:\n");
    68         femmodel=new FemModel(fid,analyses,5);
     69        femmodel=new FemModel(fid,solution_type,analyses,5);
    6970       
    7071        /*get parameters: */
  • issm/trunk/src/c/solutions/diagnostic_core.cpp

    r4023 r4028  
    7272
    7373                        //"recondition" pressure computed previously:
    74                         DuplicateInputx(femmodel,PressureEnum,PressureStokesEnum); ScaleInputx(femmmodel,PressureStokesEnum,1.0/stokesreconditioning);
     74                        DuplicateInputx(femmodel,PressureEnum,PressureStokesEnum);
     75                        ScaleInputx(femmmodel,PressureStokesEnum,1.0/stokesreconditioning);
    7576
    7677                        if(verbose)_printf_("%s\n"," update boundary conditions for stokes using velocities previously computed...");
    77                         GetSolutionFromInputsx( &ug, femmodel->elements,femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials,  femmodel->parameters, DiagnosticAnalysisEnum,StokesAnalysisEnum);
    7878                        ResetBoundaryConditions(femmodel,DiagnosticAnalysisEnum,StokesAnalysisEnum);
    7979
  • issm/trunk/src/m/solutions/jpl/CreateFemModel.m

    r4004 r4028  
    66%-----------------------------------------------------------------------
    77
    8 function  m=CreateFEMModel(md,analyses)
     8function  m=CreateFEMModel(md,solution_type,analysis_types)
    99       
    1010        displaystring(md.verbose,'\n   reading data from model %s...',md.name);
    11         [m.elements,m.nodes,m.vertices,m.constraints,m.loads,m.materials,m.parameters]=ModelProcessor(md,analyses);
     11        [m.elements,m.nodes,m.vertices,m.constraints,m.loads,m.materials,m.parameters]=ModelProcessor(md,solution_type,analysis_types);
    1212
    13         for i=1:length(analyses),
     13        for i=1:length(analysis_types),
    1414
    1515                displaystring(md.verbose,'%s','   generating degrees of freedom...');
     
    1818
    1919                displaystring(md.verbose,'%s','   generating single point constraints...');
    20                 [m.nodes,m.yg(i)]=SpcNodes(m.nodes,m.constraints,analyses[i]);
     20                [m.nodes,m.yg(i)]=SpcNodes(m.nodes,m.constraints,analysis_types[i]);
    2121
    2222                displaystring(md.verbose,'%s','   generating rigid body constraints...');
    23                 [m.Rmg(i),m.nodes]=MpcNodes(m.nodes,m.constraints,analyses[i]);
     23                [m.Rmg(i),m.nodes]=MpcNodes(m.nodes,m.constraints,analysis_types[i]);
    2424
    2525                displaystring(md.verbose,'%s','   generating node sets...');
    26                 m.nodesets(i)=BuildNodeSets(m.nodes,analyses[i]);
     26                m.nodesets(i)=BuildNodeSets(m.nodes,analysis_types[i]);
    2727
    2828                displaystring(md.verbose,'%s','   reducing single point constraints vector...');
  • issm/trunk/src/m/solutions/jpl/diagnostic.m

    r4002 r4028  
    88        t1=clock;
    99
    10         analyses=[DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticStokesAnalysisEnum,DiagnosticHutterAnalysisEnum,SlopecomputeAnalysisEnum];
     10        solution_type=DiagnosticAnalysisEnum;
     11        analysis_types=[DiagnosticHorizAnalysisEnum,DiagnosticVertAnalysisEnum,DiagnosticStokesAnalysisEnum,DiagnosticHutterAnalysisEnum,SlopecomputeAnalysisEnum];
    1112
    1213        displaystring(md.verbose,'%s',['create fem model']);
    13         femmodel=CreateFemModel(md,analyses);
     14        femmodel=CreateFemModel(md,solution_type,analysis_types);
    1415
    1516        %compute solution
Note: See TracChangeset for help on using the changeset viewer.