Changeset 5841
- Timestamp:
- 09/16/10 10:32:45 (15 years ago)
- Location:
- issm/trunk/src/c/objects/Elements
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified issm/trunk/src/c/objects/Elements/Penta.cpp ¶
r5823 r5841 687 687 void Penta::CreateKMatrix(Mat Kgg, Mat Kff, Mat Kfs){ 688 688 689 /*retrive parameters: */ 689 690 int analysis_type; 690 691 /*retrive parameters: */692 691 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 693 692 694 /* if debugging mode, check that all pointers exist*/693 /*Checks in debugging {{{2*/ 695 694 ISSMASSERT(this->nodes && this->matice && this->matpar && this->neighbors && this->parameters && this->inputs); 695 /*}}}*/ 696 696 697 697 /*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */ 698 if (analysis_type==DiagnosticHorizAnalysisEnum){ 699 int approximation; 700 inputs->GetParameterValue(&approximation,ApproximationEnum); 701 if(approximation==MacAyealApproximationEnum){ 702 CreateKMatrixDiagnosticMacAyeal( Kgg); 703 } 704 else if(approximation==PattynApproximationEnum){ 705 CreateKMatrixDiagnosticPattyn( Kgg); 706 } 707 else if(approximation==StokesApproximationEnum){ 708 CreateKMatrixDiagnosticStokes( Kgg); 709 } 710 else if(approximation==HutterApproximationEnum){ 711 return; 712 } 713 else if(approximation==NoneApproximationEnum){ 714 return; 715 } 716 else if(approximation==MacAyealPattynApproximationEnum){ 717 CreateKMatrixDiagnosticMacAyeal( Kgg); 718 CreateKMatrixDiagnosticPattyn( Kgg); 719 CreateKMatrixCouplingMacAyealPattyn( Kgg); 720 } 721 else if(approximation==PattynStokesApproximationEnum){ 722 CreateKMatrixDiagnosticPattyn( Kgg); 723 CreateKMatrixDiagnosticStokes( Kgg); 724 CreateKMatrixCouplingPattynStokes( Kgg); 725 } 726 else ISSMERROR("Approximation %s not supported yet",EnumToString(approximation)); 727 } 728 else if (analysis_type==AdjointHorizAnalysisEnum){ 729 /*Same as diagnostic*/ 730 int approximation; 731 inputs->GetParameterValue(&approximation,ApproximationEnum); 732 if(approximation==MacAyealApproximationEnum){ 733 CreateKMatrixDiagnosticMacAyeal( Kgg); 734 } 735 else if(approximation==PattynApproximationEnum){ 736 CreateKMatrixDiagnosticPattyn( Kgg); 737 } 738 else if(approximation==StokesApproximationEnum){ 739 CreateKMatrixDiagnosticStokes( Kgg); 740 } 741 else if(approximation==NoneApproximationEnum){ 742 return; 743 } 744 else ISSMERROR("Approximation %s not supported yet",EnumToString(approximation)); 745 } 746 else if (analysis_type==DiagnosticHutterAnalysisEnum){ 747 CreateKMatrixDiagnosticHutter( Kgg); 748 } 749 else if (analysis_type==DiagnosticVertAnalysisEnum){ 750 CreateKMatrixDiagnosticVert( Kgg); 751 } 752 else if (analysis_type==BedSlopeXAnalysisEnum || analysis_type==SurfaceSlopeXAnalysisEnum || analysis_type==BedSlopeYAnalysisEnum || analysis_type==SurfaceSlopeYAnalysisEnum){ 753 CreateKMatrixSlope( Kgg); 754 } 755 else if (analysis_type==PrognosticAnalysisEnum){ 756 CreateKMatrixPrognostic( Kgg); 757 } 758 else if (analysis_type==BalancedthicknessAnalysisEnum){ 759 CreateKMatrixBalancedthickness( Kgg); 760 } 761 else if (analysis_type==BalancedvelocitiesAnalysisEnum){ 762 CreateKMatrixBalancedvelocities( Kgg); 763 } 764 else if (analysis_type==ThermalAnalysisEnum){ 765 CreateKMatrixThermal( Kgg); 766 } 767 else if (analysis_type==MeltingAnalysisEnum){ 768 CreateKMatrixMelting( Kgg); 769 } 770 else ISSMERROR("analysis %i (%s) not supported yet",analysis_type,EnumToString(analysis_type)); 771 698 switch(analysis_type){ 699 case DiagnosticHorizAnalysisEnum: case AdjointHorizAnalysisEnum: 700 CreateKMatrixDiagnosticHoriz(Kgg); 701 break; 702 case DiagnosticHutterAnalysisEnum: 703 CreateKMatrixDiagnosticHutter( Kgg); 704 break; 705 case DiagnosticVertAnalysisEnum: 706 CreateKMatrixDiagnosticVert( Kgg); 707 break; 708 case BedSlopeXAnalysisEnum: case SurfaceSlopeXAnalysisEnum: case BedSlopeYAnalysisEnum: case SurfaceSlopeYAnalysisEnum: 709 CreateKMatrixSlope( Kgg); 710 break; 711 case PrognosticAnalysisEnum: 712 CreateKMatrixPrognostic( Kgg); 713 break; 714 case BalancedthicknessAnalysisEnum: 715 CreateKMatrixBalancedthickness( Kgg); 716 break; 717 case BalancedvelocitiesAnalysisEnum: 718 CreateKMatrixBalancedvelocities( Kgg); 719 break; 720 case ThermalAnalysisEnum: 721 CreateKMatrixThermal( Kgg); 722 break; 723 case MeltingAnalysisEnum: 724 CreateKMatrixMelting( Kgg); 725 break; 726 default: 727 ISSMERROR("analysis %i (%s) not supported yet",analysis_type,EnumToString(analysis_type)); 728 } 772 729 } 773 730 /*}}}*/ … … 2228 2185 } 2229 2186 /*}}}*/ 2187 /*FUNCTION Penta::CreateKMatrixDiagnosticHoriz {{{1*/ 2188 void Penta::CreateKMatrixDiagnosticHoriz(Mat Kgg){ 2189 2190 int approximation; 2191 inputs->GetParameterValue(&approximation,ApproximationEnum); 2192 2193 switch(approximation){ 2194 case MacAyealApproximationEnum: 2195 CreateKMatrixDiagnosticMacAyeal( Kgg); 2196 break; 2197 case PattynApproximationEnum: 2198 CreateKMatrixDiagnosticPattyn( Kgg); 2199 break; 2200 case StokesApproximationEnum: 2201 CreateKMatrixDiagnosticStokes( Kgg); 2202 break; 2203 case HutterApproximationEnum: 2204 break; 2205 case NoneApproximationEnum: 2206 break; 2207 case MacAyealPattynApproximationEnum: 2208 CreateKMatrixDiagnosticMacAyeal( Kgg); 2209 CreateKMatrixDiagnosticPattyn( Kgg); 2210 CreateKMatrixCouplingMacAyealPattyn( Kgg); 2211 break; 2212 case PattynStokesApproximationEnum: 2213 CreateKMatrixDiagnosticPattyn( Kgg); 2214 CreateKMatrixDiagnosticStokes( Kgg); 2215 CreateKMatrixCouplingPattynStokes( Kgg); 2216 break; 2217 default: 2218 ISSMERROR("Approximation %s not supported yet",EnumToString(approximation)); 2219 } 2220 } 2221 /*}}}*/ 2230 2222 /*FUNCTION Penta::CreateKMatrixDiagnosticHutter{{{1*/ 2231 2223 void Penta::CreateKMatrixDiagnosticHutter(Mat Kgg){ -
TabularUnified issm/trunk/src/c/objects/Elements/Penta.h ¶
r5823 r5841 123 123 void CreateKMatrixCouplingMacAyealPattyn( Mat Kgg); 124 124 void CreateKMatrixCouplingPattynStokes( Mat Kgg); 125 void CreateKMatrixDiagnosticHoriz( Mat Kgg); 125 126 void CreateKMatrixDiagnosticHutter( Mat Kgg); 126 127 void CreateKMatrixDiagnosticMacAyeal( Mat Kgg);
Note:
See TracChangeset
for help on using the changeset viewer.