Changeset 5917


Ignore:
Timestamp:
09/21/10 08:44:15 (15 years ago)
Author:
Mathieu Morlighem
Message:

split CreatePVector

Location:
issm/trunk/src/c/objects/Elements
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Elements/Penta.cpp

    r5909 r5917  
    739739void  Penta::CreatePVector(Vec pg, Vec pf){
    740740
     741        /*retrive parameters: */
    741742        int analysis_type;
    742 
    743         /*retrive parameters: */
    744743        parameters->FindParam(&analysis_type,AnalysisTypeEnum);
    745744
    746         /*if debugging mode, check that all pointers exist*/
     745        /*if debugging mode, check that all pointers exist {{{2*/
    747746        ISSMASSERT(this->nodes && this->matice && this->matpar && this->neighbors && this->parameters && this->inputs);
     747        /*}}}*/
    748748
    749749        /*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
    750         if (analysis_type==DiagnosticHorizAnalysisEnum){
    751                 int approximation;
    752                 inputs->GetParameterValue(&approximation,ApproximationEnum);
    753                 if(approximation==MacAyealApproximationEnum){
    754                         CreatePVectorDiagnosticMacAyeal( pg);
    755                 }
    756                 else if(approximation==PattynApproximationEnum){
    757                         CreatePVectorDiagnosticPattyn( pg);
    758                 }
    759                 else if(approximation==HutterApproximationEnum){
    760                         return;
    761                 }
    762                 else if(approximation==NoneApproximationEnum){
    763                         return;
    764                 }
    765                 else if(approximation==StokesApproximationEnum){
    766                         CreatePVectorDiagnosticStokes( pg);
    767                 }
    768                 else if(approximation==MacAyealPattynApproximationEnum){
    769                         CreatePVectorDiagnosticMacAyeal( pg);
    770                         CreatePVectorDiagnosticPattyn( pg);
    771                 }
    772                 else if(approximation==PattynStokesApproximationEnum){
    773                         CreatePVectorDiagnosticPattyn( pg);
    774                         CreatePVectorDiagnosticStokes( pg);
    775                         CreatePVectorCouplingPattynStokes( pg);
    776                 }
    777                 else ISSMERROR("Approximation %s not supported yet",EnumToString(approximation));
    778         }
    779         else if (analysis_type==AdjointHorizAnalysisEnum){
    780                 int approximation;
    781                 inputs->GetParameterValue(&approximation,ApproximationEnum);
    782                 if(approximation==MacAyealApproximationEnum){
    783                         CreatePVectorAdjointMacAyeal( pg);
    784                 }
    785                 else if(approximation==PattynApproximationEnum){
    786                         CreatePVectorAdjointPattyn( pg);
    787                 }
    788                 else if(approximation==StokesApproximationEnum){
    789                         CreatePVectorAdjointStokes( pg);
    790                 }
    791                 else if(approximation==NoneApproximationEnum){
    792                         return;
    793                 }
    794                 else ISSMERROR("Approximation %s not supported yet",EnumToString(approximation));
    795         }
    796         else if (analysis_type==DiagnosticHutterAnalysisEnum){
    797                 CreatePVectorDiagnosticHutter( pg);
    798         }
    799         else if (analysis_type==DiagnosticVertAnalysisEnum){
    800                 CreatePVectorDiagnosticVert( pg);
    801         }
    802         else if (analysis_type==BedSlopeXAnalysisEnum || analysis_type==SurfaceSlopeXAnalysisEnum || analysis_type==BedSlopeYAnalysisEnum || analysis_type==SurfaceSlopeYAnalysisEnum){
    803                 CreatePVectorSlope( pg);
    804         }
    805         else if (analysis_type==PrognosticAnalysisEnum){
    806                 CreatePVectorPrognostic( pg);
    807         }
    808         else if (analysis_type==BalancedthicknessAnalysisEnum){
    809                 CreatePVectorBalancedthickness( pg);
    810         }
    811         else if (analysis_type==BalancedvelocitiesAnalysisEnum){
    812                 CreatePVectorBalancedvelocities( pg);
    813         }
    814         else if (analysis_type==ThermalAnalysisEnum){
    815                 CreatePVectorThermal( pg);
    816         }
    817         else if (analysis_type==MeltingAnalysisEnum){
    818                 CreatePVectorMelting( pg);
    819         }
    820         else ISSMERROR("analysis %i (%s) not supported yet",analysis_type,EnumToString(analysis_type));
     750        switch(analysis_type){
     751                case DiagnosticHorizAnalysisEnum:
     752                        CreatePVectorDiagnosticHoriz( pg);
     753                        break;
     754                case AdjointHorizAnalysisEnum:
     755                        CreatePVectorAdjointHoriz( pg);
     756                        break;
     757                case DiagnosticHutterAnalysisEnum:
     758                        CreatePVectorDiagnosticHutter( pg);
     759                        break;
     760                case DiagnosticVertAnalysisEnum:
     761                        CreatePVectorDiagnosticVert( pg);
     762                        break;
     763                case BedSlopeXAnalysisEnum: case SurfaceSlopeXAnalysisEnum: case BedSlopeYAnalysisEnum: case SurfaceSlopeYAnalysisEnum:
     764                        CreatePVectorSlope( pg);
     765                        break;
     766                case PrognosticAnalysisEnum:
     767                        CreatePVectorPrognostic( pg);
     768                        break;
     769                case BalancedthicknessAnalysisEnum:
     770                        CreatePVectorBalancedthickness( pg);
     771                        break;
     772                case BalancedvelocitiesAnalysisEnum:
     773                        CreatePVectorBalancedvelocities( pg);
     774                        break;
     775                case ThermalAnalysisEnum:
     776                        CreatePVectorThermal( pg);
     777                        break;
     778                case MeltingAnalysisEnum:
     779                        CreatePVectorMelting( pg);
     780                        break;
     781                default:
     782                        ISSMERROR("analysis %i (%s) not supported yet",analysis_type,EnumToString(analysis_type));
     783        }
    821784
    822785}
     
    29952958}
    29962959/*}}}*/
     2960/*FUNCTION Penta::CreatePVectorAdjointHoriz{{{1*/
     2961void  Penta::CreatePVectorAdjointHoriz(Vec pg){
     2962
     2963        int approximation;
     2964        inputs->GetParameterValue(&approximation,ApproximationEnum);
     2965
     2966        switch(approximation){
     2967                case MacAyealApproximationEnum:
     2968                        CreatePVectorAdjointMacAyeal( pg);
     2969                        break;
     2970                case PattynApproximationEnum:
     2971                        CreatePVectorAdjointPattyn( pg);
     2972                        break;
     2973                case NoneApproximationEnum:
     2974                        return;
     2975                case StokesApproximationEnum:
     2976                        CreatePVectorAdjointStokes( pg);
     2977                        break;
     2978                default:
     2979                        ISSMERROR("Approximation %s not supported yet",EnumToString(approximation));
     2980        }
     2981}
     2982/*}}}*/
    29972983/*FUNCTION Penta::CreatePVectorAdjointMacAyeal{{{1*/
    29982984void  Penta::CreatePVectorAdjointMacAyeal(Vec p_g){
     
    32413227        xfree((void**)&doflist);
    32423228
     3229}
     3230/*}}}*/
     3231/*FUNCTION Penta::CreatePVectorDiagnosticHoriz{{{1*/
     3232void  Penta::CreatePVectorDiagnosticHoriz(Vec pg){
     3233
     3234        int approximation;
     3235        inputs->GetParameterValue(&approximation,ApproximationEnum);
     3236
     3237        switch(approximation){
     3238                case MacAyealApproximationEnum:
     3239                        CreatePVectorDiagnosticMacAyeal( pg);
     3240                        break;
     3241                case PattynApproximationEnum:
     3242                        CreatePVectorDiagnosticPattyn( pg);
     3243                        break;
     3244                case HutterApproximationEnum:
     3245                        return;
     3246                case NoneApproximationEnum:
     3247                        return;
     3248                case StokesApproximationEnum:
     3249                        CreatePVectorDiagnosticStokes( pg);
     3250                        break;
     3251                case MacAyealPattynApproximationEnum:
     3252                        CreatePVectorDiagnosticMacAyeal( pg);
     3253                        CreatePVectorDiagnosticPattyn( pg);
     3254                        break;
     3255                case PattynStokesApproximationEnum:
     3256                        CreatePVectorDiagnosticPattyn( pg);
     3257                        CreatePVectorDiagnosticStokes( pg);
     3258                        CreatePVectorCouplingPattynStokes( pg);
     3259                        break;
     3260                default:
     3261                        ISSMERROR("Approximation %s not supported yet",EnumToString(approximation));
     3262        }
    32433263}
    32443264/*}}}*/
  • issm/trunk/src/c/objects/Elements/Penta.h

    r5909 r5917  
    152152                void      CreatePVectorBalancedthickness( Vec pg);
    153153                void      CreatePVectorBalancedvelocities( Vec pg);
     154                void      CreatePVectorAdjointHoriz( Vec pg);
    154155                void      CreatePVectorAdjointMacAyeal( Vec pg);
    155156                void      CreatePVectorAdjointPattyn( Vec pg);
    156157                void      CreatePVectorCouplingPattynStokes( Vec pg);
     158                void      CreatePVectorDiagnosticHoriz( Vec pg);
    157159                void      CreatePVectorDiagnosticHutter( Vec pg);
    158160                void      CreatePVectorDiagnosticMacAyeal( Vec pg);
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r5916 r5917  
    767767                case BalancedthicknessAnalysisEnum:
    768768                        CreatePVectorBalancedthickness(pg);
     769                        break;
    769770                case AdjointBalancedthicknessAnalysisEnum:
    770771                        CreatePVectorAdjointBalancedthickness(pg);
Note: See TracChangeset for help on using the changeset viewer.