source:
issm/oecreview/Archive/11648-11666/ISSM-11655-11656.diff@
11991
Last change on this file since 11991 was 11991, checked in by , 13 years ago | |
---|---|
File size: 12.8 KB |
-
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/shared/Elements/elements.h
16 16 int GetNumberOfDofs( Node** nodes,int numnodes,int setenum,int approximation_enum); 17 17 int* GetLocalDofList( Node** nodes,int numnodes,int setenum,int approximation_enum); 18 18 int* GetGlobalDofList(Node** nodes,int numnodes,int setenum,int approximation_enum); 19 #ifdef _HAVE_DIAGNOSTIC_ 19 20 void CoordinateSystemTransform(double** ptransform,Node** nodes,int numnodes,int* cs_array); 20 #ifdef _HAVE_DIAGNOSTIC_21 21 void TransformInvStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int cs_enum); 22 22 void TransformInvStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int* cs_array); 23 23 void TransformStiffnessMatrixCoord(ElementMatrix* Ke,Node** nodes,int numnodes,int cs_enum); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/Makefile.am
203 203 ./shared/Elements/GetLocalDofList.cpp\ 204 204 ./shared/Elements/GetGlobalDofList.cpp\ 205 205 ./shared/Elements/GetNumberOfDofs.cpp\ 206 ./shared/Elements/CoordinateSystemTransform.cpp\207 206 ./shared/String/sharedstring.h\ 208 207 ./toolkits/petsc\ 209 208 ./toolkits/petsc/patches\ … … 501 500 ./modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp \ 502 501 ./modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp \ 503 502 ./modules/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp \ 503 ./shared/Elements/CoordinateSystemTransform.cpp\ 504 504 ./shared/Elements/TransformLoadVectorCoord.cpp \ 505 505 ./shared/Elements/TransformStiffnessMatrixCoord.cpp \ 506 506 ./shared/Elements/TransformInvStiffnessMatrixCoord.cpp \ -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/objects/Loads/Pengrid.cpp
318 318 this->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 319 319 320 320 switch(analysis_type){ 321 #ifdef _HAVE_DIAGNOSTIC_ 321 322 case DiagnosticHorizAnalysisEnum: case AdjointHorizAnalysisEnum: 322 323 Ke=PenaltyCreateKMatrixDiagnosticStokes(kmax); 323 324 break; 325 #endif 326 #ifdef _HAVE_THERMAL_ 324 327 case ThermalAnalysisEnum: 325 328 Ke=PenaltyCreateKMatrixThermal(kmax); 326 329 break; 327 330 case MeltingAnalysisEnum: 328 331 Ke=PenaltyCreateKMatrixMelting(kmax); 329 332 break; 333 #endif 330 334 default: 331 335 _error_("analysis %i (%s) not supported yet",analysis_type,EnumToStringx(analysis_type)); 332 336 } … … 347 351 this->parameters->FindParam(&analysis_type,AnalysisTypeEnum); 348 352 349 353 switch(analysis_type){ 354 #ifdef _HAVE_DIAGNOSTIC_ 350 355 case ThermalAnalysisEnum: 351 356 pe=PenaltyCreatePVectorThermal(kmax); 352 357 break; 358 #endif 359 #ifdef _HAVE_THERMAL_ 353 360 case MeltingAnalysisEnum: 354 361 pe=PenaltyCreatePVectorMelting(kmax); 355 362 break; 356 363 case DiagnosticHorizAnalysisEnum: case AdjointHorizAnalysisEnum: 357 364 break; 365 #endif 358 366 default: 359 367 _error_("analysis %i (%s) not supported yet",analysis_type,EnumToStringx(analysis_type)); 360 368 } … … 538 546 *punstable=unstable; 539 547 } 540 548 /*}}}1*/ 549 #ifdef _HAVE_DIAGNOSTIC_ 541 550 /*FUNCTION Pengrid::PenaltyCreateKMatrixDiagnosticStokes {{{1*/ 542 551 ElementMatrix* Pengrid::PenaltyCreateKMatrixDiagnosticStokes(double kmax){ 543 552 … … 570 579 return Ke; 571 580 } 572 581 /*}}}1*/ 582 #endif 583 #ifdef _HAVE_THERMAL_ 573 584 /*FUNCTION Pengrid::PenaltyCreateKMatrixMelting {{{1*/ 574 585 ElementMatrix* Pengrid::PenaltyCreateKMatrixMelting(double kmax){ 575 586 … … 689 700 return pe; 690 701 } 691 702 /*}}}1*/ 703 #endif 692 704 /*FUNCTION Pengrid::ResetConstraint {{{1*/ 693 705 void Pengrid::ResetConstraint(void){ 694 706 active=0; -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/objects/Loads/Pengrid.h
83 83 bool InAnalysis(int analysis_type); 84 84 /*}}}*/ 85 85 /*Pengrid management {{{1*/ 86 #ifdef _HAVE_DIAGNOSTIC_ 86 87 ElementMatrix* PenaltyCreateKMatrixDiagnosticStokes(double kmax); 88 #endif 89 #ifdef _HAVE_THERMAL_ 87 90 ElementMatrix* PenaltyCreateKMatrixThermal(double kmax); 88 91 ElementMatrix* PenaltyCreateKMatrixMelting(double kmax); 89 92 ElementVector* PenaltyCreatePVectorThermal(double kmax); 90 93 ElementVector* PenaltyCreatePVectorMelting(double kmax); 94 #endif 91 95 void ConstraintActivate(int* punstable); 92 96 void ConstraintActivateThermal(int* punstable); 93 97 void UpdateInputs(double* solution); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/objects/Elements/Element.h
57 57 virtual void ProcessResultsUnits(void)=0; 58 58 virtual void RequestedOutput(int output_enum,int step,double time)=0; 59 59 60 virtual int NodalValue(double* pvalue, int index, int natureofdataenum,bool process_units)=0; 60 61 virtual void InputScale(int enum_type,double scale_factor)=0; 61 62 virtual void GetVectorFromInputs(Vec vector, int name_enum)=0; 62 63 virtual void GetVectorFromResults(Vec vector,int id,int interp)=0; … … 87 88 virtual double MassFlux(double* segment,bool process_units)=0; 88 89 virtual void ElementResponse(double* presponse,int response_enum,bool process_units)=0; 89 90 virtual double IceVolume(void)=0; 90 virtual int NodalValue(double* pvalue, int index, int natureofdataenum,bool process_units)=0;91 91 #endif 92 92 93 93 #ifdef _HAVE_CONTROL_ -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/objects/Elements/Tria.cpp
2122 2122 return my_rank; 2123 2123 } 2124 2124 /*}}}*/ 2125 /*FUNCTION Tria::NodalValue {{{1*/ 2126 int Tria::NodalValue(double* pvalue, int index, int natureofdataenum,bool process_units){ 2127 2128 int i; 2129 int found=0; 2130 double value; 2131 Input* data=NULL; 2132 GaussTria *gauss = NULL; 2133 2134 /*First, serarch the input: */ 2135 data=inputs->GetInput(natureofdataenum); 2136 2137 /*figure out if we have the vertex id: */ 2138 found=0; 2139 for(i=0;i<NUMVERTICES;i++){ 2140 if(index==nodes[i]->GetVertexId()){ 2141 /*Do we have natureofdataenum in our inputs? :*/ 2142 if(data){ 2143 /*ok, we are good. retrieve value of input at vertex :*/ 2144 gauss=new GaussTria(); gauss->GaussVertex(i); 2145 data->GetInputValue(&value,gauss); 2146 found=1; 2147 break; 2148 } 2149 } 2150 } 2151 2152 if(found)*pvalue=value; 2153 return found; 2154 } 2155 /*}}}*/ 2125 2156 /*FUNCTION Tria::PatchFill{{{1*/ 2126 2157 void Tria::PatchFill(int* prow, Patch* patch){ 2127 2158 … … 2738 2769 *pminvz=minvz; 2739 2770 } 2740 2771 /*}}}*/ 2741 /*FUNCTION Tria::NodalValue {{{1*/2742 int Tria::NodalValue(double* pvalue, int index, int natureofdataenum,bool process_units){2743 2744 int i;2745 int found=0;2746 double value;2747 Input* data=NULL;2748 GaussTria *gauss = NULL;2749 2750 /*First, serarch the input: */2751 data=inputs->GetInput(natureofdataenum);2752 2753 /*figure out if we have the vertex id: */2754 found=0;2755 for(i=0;i<NUMVERTICES;i++){2756 if(index==nodes[i]->GetVertexId()){2757 /*Do we have natureofdataenum in our inputs? :*/2758 if(data){2759 /*ok, we are good. retrieve value of input at vertex :*/2760 gauss=new GaussTria(); gauss->GaussVertex(i);2761 data->GetInputValue(&value,gauss);2762 found=1;2763 break;2764 }2765 }2766 }2767 2768 if(found)*pvalue=value;2769 return found;2770 }2771 /*}}}*/2772 2772 /*FUNCTION Tria::ElementResponse{{{1*/ 2773 2773 void Tria::ElementResponse(double* presponse,int response_enum,bool process_units){ 2774 2774 -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/objects/Elements/Tria.h
105 105 void DeleteResults(void); 106 106 void MaterialUpdateFromTemperature(void){_error_("not implemented yet");}; 107 107 void MigrateGroundingLine(double* oldfloating,double* sheet_ungrounding); 108 int NodalValue(double* pvalue, int index, int natureofdataenum,bool process_units); 108 109 void PotentialSheetUngrounding(Vec potential_sheet_ungrounding); 109 110 void PositiveDegreeDay(void); 110 111 void RequestedOutput(int output_enum,int step,double time); … … 126 127 void MinVx(double* pminvx, bool process_units); 127 128 void MinVy(double* pminvy, bool process_units); 128 129 void MinVz(double* pminvz, bool process_units); 129 int NodalValue(double* pvalue, int index, int natureofdataenum,bool process_units);130 130 double MassFlux(double* segment,bool process_units); 131 131 void MaxAbsVx(double* pmaxabsvx, bool process_units); 132 132 void MaxAbsVy(double* pmaxabsvy, bool process_units); -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/objects/Elements/Penta.cpp
2326 2326 return my_rank; 2327 2327 } 2328 2328 /*}}}*/ 2329 /*FUNCTION Penta::NodalValue {{{1*/ 2330 int Penta::NodalValue(double* pvalue, int index, int natureofdataenum,bool process_units){ 2331 2332 int i; 2333 int found=0; 2334 double value; 2335 Input* data=NULL; 2336 GaussPenta* gauss=NULL; 2337 2338 /*First, serarch the input: */ 2339 data=inputs->GetInput(natureofdataenum); 2340 2341 /*figure out if we have the vertex id: */ 2342 found=0; 2343 for(i=0;i<NUMVERTICES;i++){ 2344 if(index==nodes[i]->GetVertexId()){ 2345 /*Do we have natureofdataenum in our inputs? :*/ 2346 if(data){ 2347 /*ok, we are good. retrieve value of input at vertex :*/ 2348 gauss=new GaussPenta(); gauss->GaussVertex(i); 2349 data->GetInputValue(&value,gauss); 2350 found=1; 2351 break; 2352 } 2353 } 2354 } 2355 2356 if(found)*pvalue=value; 2357 return found; 2358 } 2359 /*}}}*/ 2329 2360 /*FUNCTION Penta::PatchFill{{{1*/ 2330 2361 void Penta::PatchFill(int* pcount, Patch* patch){ 2331 2362 … … 3001 3032 return base*height; 3002 3033 } 3003 3034 /*}}}*/ 3004 /*FUNCTION Penta::NodalValue {{{1*/3005 int Penta::NodalValue(double* pvalue, int index, int natureofdataenum,bool process_units){3006 3007 int i;3008 int found=0;3009 double value;3010 Input* data=NULL;3011 GaussPenta* gauss=NULL;3012 3013 /*First, serarch the input: */3014 data=inputs->GetInput(natureofdataenum);3015 3016 /*figure out if we have the vertex id: */3017 found=0;3018 for(i=0;i<NUMVERTICES;i++){3019 if(index==nodes[i]->GetVertexId()){3020 /*Do we have natureofdataenum in our inputs? :*/3021 if(data){3022 /*ok, we are good. retrieve value of input at vertex :*/3023 gauss=new GaussPenta(); gauss->GaussVertex(i);3024 data->GetInputValue(&value,gauss);3025 found=1;3026 break;3027 }3028 }3029 }3030 3031 if(found)*pvalue=value;3032 return found;3033 }3034 /*}}}*/3035 3035 /*FUNCTION Penta::MinVel{{{1*/ 3036 3036 void Penta::MinVel(double* pminvel, bool process_units){ 3037 3037 -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/objects/Elements/Penta.h
117 117 double SurfaceArea(void); 118 118 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type); 119 119 int UpdatePotentialSheetUngrounding(double* potential_sheet_ungrounding,Vec vec_nodes_on_iceshelf,double* nodes_on_iceshelf); 120 int NodalValue(double* pvalue, int index, int natureofdataenum,bool process_units); 120 121 double TimeAdapt(); 121 122 int* GetHorizontalNeighboorSids(void); 122 123 void ViscousHeatingCreateInput(void); … … 128 129 void MinVx(double* pminvx, bool process_units); 129 130 void MinVy(double* pminvy, bool process_units); 130 131 void MinVz(double* pminvz, bool process_units); 131 int NodalValue(double* pvalue, int index, int natureofdataenum,bool process_units);132 132 double MassFlux(double* segment,bool process_units); 133 133 void MaxAbsVx(double* pmaxabsvx, bool process_units); 134 134 void MaxAbsVy(double* pmaxabsvy, bool process_units);
Note:
See TracBrowser
for help on using the repository browser.