Changeset 5917
- Timestamp:
- 09/21/10 08:44:15 (15 years ago)
- Location:
- issm/trunk/src/c/objects/Elements
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/objects/Elements/Penta.cpp
r5909 r5917 739 739 void Penta::CreatePVector(Vec pg, Vec pf){ 740 740 741 /*retrive parameters: */ 741 742 int analysis_type; 742 743 /*retrive parameters: */744 743 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 745 744 746 /*if debugging mode, check that all pointers exist */745 /*if debugging mode, check that all pointers exist {{{2*/ 747 746 ISSMASSERT(this->nodes && this->matice && this->matpar && this->neighbors && this->parameters && this->inputs); 747 /*}}}*/ 748 748 749 749 /*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 } 821 784 822 785 } … … 2995 2958 } 2996 2959 /*}}}*/ 2960 /*FUNCTION Penta::CreatePVectorAdjointHoriz{{{1*/ 2961 void 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 /*}}}*/ 2997 2983 /*FUNCTION Penta::CreatePVectorAdjointMacAyeal{{{1*/ 2998 2984 void Penta::CreatePVectorAdjointMacAyeal(Vec p_g){ … … 3241 3227 xfree((void**)&doflist); 3242 3228 3229 } 3230 /*}}}*/ 3231 /*FUNCTION Penta::CreatePVectorDiagnosticHoriz{{{1*/ 3232 void 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 } 3243 3263 } 3244 3264 /*}}}*/ -
issm/trunk/src/c/objects/Elements/Penta.h
r5909 r5917 152 152 void CreatePVectorBalancedthickness( Vec pg); 153 153 void CreatePVectorBalancedvelocities( Vec pg); 154 void CreatePVectorAdjointHoriz( Vec pg); 154 155 void CreatePVectorAdjointMacAyeal( Vec pg); 155 156 void CreatePVectorAdjointPattyn( Vec pg); 156 157 void CreatePVectorCouplingPattynStokes( Vec pg); 158 void CreatePVectorDiagnosticHoriz( Vec pg); 157 159 void CreatePVectorDiagnosticHutter( Vec pg); 158 160 void CreatePVectorDiagnosticMacAyeal( Vec pg); -
issm/trunk/src/c/objects/Elements/Tria.cpp
r5916 r5917 767 767 case BalancedthicknessAnalysisEnum: 768 768 CreatePVectorBalancedthickness(pg); 769 break; 769 770 case AdjointBalancedthicknessAnalysisEnum: 770 771 CreatePVectorAdjointBalancedthickness(pg);
Note:
See TracChangeset
for help on using the changeset viewer.