Changeset 24991


Ignore:
Timestamp:
06/09/20 09:50:01 (5 years ago)
Author:
Mathieu Morlighem
Message:

CHG: better handling of list of analyses in transient by recursively call AnalysesList

Location:
issm/trunk-jpl/src/c
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r24984 r24991  
    648648        /*output: */
    649649        int  numanalyses = 0;
    650         int* analyses=NULL;
     650        int *analyses    = NULL;
    651651
    652652        /*Intermediaries*/
     
    778778
    779779                case TransientSolutionEnum:{
     780                        /*We have multiple analyses here, process one by one*/
    780781                        bool isSIA,isFS,isthermal,isenthalpy,ismasstransport,isgroundingline,isstressbalance,ismovingfront,ishydrology,isdamage,issmb,isslr,isesa,isgia;
    781                         iomodel->FindConstant(&isSIA,"md.flowequation.isSIA");
    782                         iomodel->FindConstant(&isFS,"md.flowequation.isFS");
    783782                        iomodel->FindConstant(&isthermal,"md.transient.isthermal");
    784                         iomodel->FindConstant(&isenthalpy,"md.thermal.isenthalpy");
    785783                        iomodel->FindConstant(&ismovingfront,"md.transient.ismovingfront");
    786784                        iomodel->FindConstant(&ismasstransport,"md.transient.ismasstransport");
     
    793791                        iomodel->FindConstant(&isesa,"md.transient.isesa");
    794792                        iomodel->FindConstant(&isgia,"md.transient.isgia");
     793         int* analyses_iter     = NULL;
     794         int  num_analyses_iter = 0;
    795795                        if(isstressbalance){
    796                                 int  fe_FS;
    797                                 iomodel->FindConstant(&fe_FS,"md.flowequation.fe_FS");
    798                                 analyses_temp[numanalyses++]=StressbalanceAnalysisEnum;
    799                                 analyses_temp[numanalyses++]=StressbalanceVerticalAnalysisEnum;
    800                                 if(isSIA){
    801                                         analyses_temp[numanalyses++]=StressbalanceSIAAnalysisEnum;
    802                                 }
    803                                 analyses_temp[numanalyses++]=DepthAverageAnalysisEnum;
    804                                 if(fe_FS==LATaylorHoodEnum || fe_FS==LACrouzeixRaviartEnum){
    805                                         analyses_temp[numanalyses++]=UzawaPressureAnalysisEnum;
    806                                 }
    807                         }
     796                                SolutionAnalysesList(&analyses_iter,&num_analyses_iter,iomodel,StressbalanceSolutionEnum);
     797            xMemCpy<int>(&analyses_temp[numanalyses],analyses_iter,num_analyses_iter);
     798                                numanalyses+=num_analyses_iter; xDelete<int>(analyses_iter);
     799         }
    808800                        if(isthermal && iomodel->domaintype==Domain3DEnum){
    809                                 if(isenthalpy){
    810                                         analyses_temp[numanalyses++]=EnthalpyAnalysisEnum;
    811                                 }
    812                                 else{
    813                                         analyses_temp[numanalyses++]=ThermalAnalysisEnum;
    814                                         analyses_temp[numanalyses++]=MeltingAnalysisEnum;
    815                                 }
     801                                SolutionAnalysesList(&analyses_iter,&num_analyses_iter,iomodel,ThermalSolutionEnum);
     802            xMemCpy<int>(&analyses_temp[numanalyses],analyses_iter,num_analyses_iter);
     803                                numanalyses+=num_analyses_iter; xDelete<int>(analyses_iter);
    816804                        }
    817805                        if(ismasstransport || isgroundingline){
  • issm/trunk-jpl/src/c/cores/levelsetfunctionslope_core.cpp

    r22543 r24991  
    2020        femmodel->parameters->FindParam(&domaintype,DomainTypeEnum);
    2121
    22         if(VerboseSolution()) _printf0_("computing slope of levelset function...\n");
     22        if(VerboseSolution()) _printf0_("   computing slope of levelset function...\n");
    2323
    2424        /*Call on core computations: */
Note: See TracChangeset for help on using the changeset viewer.