source: issm/oecreview/Archive/19101-20495/ISSM-19763-19764.diff@ 20498

Last change on this file since 20498 was 20498, checked in by Mathieu Morlighem, 9 years ago

CHG: done with Archive/19101-20495

File size: 22.3 KB
RevLine 
[20498]1Index: ../trunk-jpl/test/NightlyRun/test314.m
2===================================================================
3--- ../trunk-jpl/test/NightlyRun/test314.m (revision 19763)
4+++ ../trunk-jpl/test/NightlyRun/test314.m (revision 19764)
5@@ -4,18 +4,18 @@
6 md=parameterize(md,'../Par/SquareSheetConstrained.par');
7 md=setflowequation(md,'SIA','all');
8 md.cluster=generic('name',oshostname(),'np',3);
9-md.transient.requested_outputs={'default','GroundedArea','IceVolume'};
10+md.transient.requested_outputs={'default','GroundedArea','FloatingArea','IceVolume'};
11 md=solve(md,TransientSolutionEnum());
12
13 %Fields and tolerances to track changes
14 field_names ={...
15- 'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1',...
16- 'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2',...
17- 'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3'};
18+ 'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1',...
19+ 'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2',...
20+ 'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3'};
21 field_tolerances={...
22- 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13...
23- 1e-10 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13...
24- 1e-10 , 1.5e-13 , 1.5e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13, 1e-13};
25+ 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13...
26+ 1e-10 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13...
27+ 1e-10 , 1.5e-13 , 1.5e-13 , 1e-13 , 1e-13 , 1e-13 , 1e-13, 1e-13 , 1e-13};
28 field_values={...
29 (md.results.TransientSolution(1).Vx),...
30 (md.results.TransientSolution(1).Vy),...
31@@ -25,6 +25,7 @@
32 (md.results.TransientSolution(1).Surface),...
33 (md.results.TransientSolution(1).Thickness),...
34 (md.results.TransientSolution(1).GroundedArea),...
35+ (md.results.TransientSolution(1).FloatingArea),...
36 (md.results.TransientSolution(2).Vx),...
37 (md.results.TransientSolution(2).Vy),...
38 (md.results.TransientSolution(2).Vel),...
39@@ -33,6 +34,7 @@
40 (md.results.TransientSolution(2).Surface),...
41 (md.results.TransientSolution(2).Thickness),...
42 (md.results.TransientSolution(2).GroundedArea),...
43+ (md.results.TransientSolution(2).FloatingArea),...
44 (md.results.TransientSolution(3).Vx),...
45 (md.results.TransientSolution(3).Vy),...
46 (md.results.TransientSolution(3).Vel),...
47@@ -41,4 +43,5 @@
48 (md.results.TransientSolution(3).Surface),...
49 (md.results.TransientSolution(3).Thickness),...
50 (md.results.TransientSolution(3).GroundedArea),...
51+ (md.results.TransientSolution(3).FloatingArea),...
52 };
53Index: ../trunk-jpl/test/NightlyRun/test317.py
54===================================================================
55--- ../trunk-jpl/test/NightlyRun/test317.py (revision 19763)
56+++ ../trunk-jpl/test/NightlyRun/test317.py (revision 19764)
57@@ -14,13 +14,13 @@
58 md.extrude(3,1.)
59 md=setflowequation(md,'HO','all')
60 md.cluster=generic('name',oshostname(),'np',3)
61-md.transient.requested_outputs=['default','GroundedArea']
62+md.transient.requested_outputs=['default','GroundedArea','FloatingArea']
63 md=solve(md,TransientSolutionEnum())
64
65 #Fields and tolerances to track changes
66-field_names =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1',\
67- 'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2',\
68- 'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3']
69+field_names =['Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea'\
70+ 'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea',\
71+ 'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea']
72 field_tolerances=[1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,\
73 1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,\
74 1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12]
75@@ -36,6 +36,7 @@
76 md.results.TransientSolution[0].Temperature,\
77 md.results.TransientSolution[0].BasalforcingsGroundediceMeltingRate,\
78 md.results.TransientSolution[0].GroundedArea,\
79+ md.results.TransientSolution[0].FloatingArea,\
80 md.results.TransientSolution[1].Vx,\
81 md.results.TransientSolution[1].Vy,\
82 md.results.TransientSolution[1].Vz,\
83@@ -47,6 +48,7 @@
84 md.results.TransientSolution[1].Temperature,\
85 md.results.TransientSolution[1].BasalforcingsGroundediceMeltingRate,\
86 md.results.TransientSolution[1].GroundedArea,\
87+ md.results.TransientSolution[1].FloatingArea,\
88 md.results.TransientSolution[2].Vx,\
89 md.results.TransientSolution[2].Vy,\
90 md.results.TransientSolution[2].Vz,\
91@@ -58,4 +60,5 @@
92 md.results.TransientSolution[2].Temperature,\
93 md.results.TransientSolution[2].BasalforcingsGroundediceMeltingRate,\
94 md.results.TransientSolution[2].GroundedArea,\
95+ md.results.TransientSolution[2].FloatingArea,\
96 ]
97Index: ../trunk-jpl/test/NightlyRun/test317.m
98===================================================================
99--- ../trunk-jpl/test/NightlyRun/test317.m (revision 19763)
100+++ ../trunk-jpl/test/NightlyRun/test317.m (revision 19764)
101@@ -5,16 +5,16 @@
102 md=extrude(md,3,1.);
103 md=setflowequation(md,'HO','all');
104 md.cluster=generic('name',oshostname(),'np',3);
105-md.transient.requested_outputs={'default','GroundedArea'};
106+md.transient.requested_outputs={'default','GroundedArea','FloatingArea'};
107 md=solve(md,TransientSolutionEnum());
108
109 %Fields and tolerances to track changes
110-field_names ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1',...
111- 'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2',...
112- 'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3'};
113-field_tolerances={1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,...
114- 1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,...
115- 1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12};
116+field_names ={'Vx1','Vy1','Vz1','Vel1','Pressure1','Bed1','Surface1','Thickness1','Temperature1','BasalforcingsGroundediceMeltingRate1','GroundedArea1','FloatingArea1',...
117+ 'Vx2','Vy2','Vz2','Vel2','Pressure2','Bed2','Surface2','Thickness2','Temperature2','BasalforcingsGroundediceMeltingRate2','GroundedArea2','FloatingArea2',...
118+ 'Vx3','Vy3','Vz3','Vel3','Pressure3','Bed3','Surface3','Thickness3','Temperature3','BasalforcingsGroundediceMeltingRate3','GroundedArea3','FloatingArea3'};
119+field_tolerances={1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,...
120+ 1e-09,1e-09,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12,...
121+ 1e-09,5e-10,1e-09,1e-09,1e-10,1e-10,1e-10,1e-10,1e-10,1e-10,1e-12,1e-12};
122 field_values={...
123 (md.results.TransientSolution(1).Vx),...
124 (md.results.TransientSolution(1).Vy),...
125@@ -27,6 +27,7 @@
126 (md.results.TransientSolution(1).Temperature),...
127 (md.results.TransientSolution(1).BasalforcingsGroundediceMeltingRate),...
128 (md.results.TransientSolution(1).GroundedArea),...
129+ (md.results.TransientSolution(1).FloatingArea),...
130 (md.results.TransientSolution(2).Vx),...
131 (md.results.TransientSolution(2).Vy),...
132 (md.results.TransientSolution(2).Vz),...
133@@ -38,6 +39,7 @@
134 (md.results.TransientSolution(2).Temperature),...
135 (md.results.TransientSolution(2).BasalforcingsGroundediceMeltingRate),...
136 (md.results.TransientSolution(2).GroundedArea),...
137+ (md.results.TransientSolution(2).FloatingArea),...
138 (md.results.TransientSolution(3).Vx),...
139 (md.results.TransientSolution(3).Vy),...
140 (md.results.TransientSolution(3).Vz),...
141@@ -49,4 +51,5 @@
142 (md.results.TransientSolution(3).Temperature),...
143 (md.results.TransientSolution(3).BasalforcingsGroundediceMeltingRate),...
144 (md.results.TransientSolution(3).GroundedArea),...
145+ (md.results.TransientSolution(3).FloatingArea),...
146 };
147Index: ../trunk-jpl/test/NightlyRun/test314.py
148===================================================================
149--- ../trunk-jpl/test/NightlyRun/test314.py (revision 19763)
150+++ ../trunk-jpl/test/NightlyRun/test314.py (revision 19764)
151@@ -13,18 +13,18 @@
152 md=parameterize(md,'../Par/SquareSheetConstrained.py')
153 md=setflowequation(md,'SIA','all')
154 md.cluster=generic('name',oshostname(),'np',3)
155-md.transient.requested_outputs=['default','GroundedArea','IceVolume']
156+md.transient.requested_outputs=['default','GroundedArea','FloatingArea','IceVolume']
157 md=solve(md,TransientSolutionEnum())
158
159 #Fields and tolerances to track changes
160 field_names =[
161-'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1',
162-'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2',
163-'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3']
164+'Vx1','Vy1','Vel1','Pressure1','Bed1','Surface1','Thickness1','GroundedArea1','FloatingArea1',
165+'Vx2','Vy2','Vel2','Pressure2','Bed2','Surface2','Thickness2','GroundedArea2','FloatingArea2',
166+'Vx3','Vy3','Vel3','Pressure3','Bed3','Surface3','Thickness3','GroundedArea3','FloatingArea3']
167 field_tolerances=[
168- 1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,
169- 1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,
170- 1e-10,1.5e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
171+ 1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,
172+ 1e-10,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13,
173+ 1e-10,1.5e-13,1.5e-13,1e-13,1e-13,1e-13,1e-13,1e-13,1e-13]
174 field_values=[\
175 md.results.TransientSolution[0].Vx,\
176 md.results.TransientSolution[0].Vy,\
177@@ -34,6 +34,7 @@
178 md.results.TransientSolution[0].Surface,\
179 md.results.TransientSolution[0].Thickness,\
180 md.results.TransientSolution[0].GroundedArea,\
181+ md.results.TransientSolution[0].FloatingArea,\
182 md.results.TransientSolution[1].Vx,\
183 md.results.TransientSolution[1].Vy,\
184 md.results.TransientSolution[1].Vel,\
185@@ -42,6 +43,7 @@
186 md.results.TransientSolution[1].Surface,\
187 md.results.TransientSolution[1].Thickness,\
188 md.results.TransientSolution[1].GroundedArea,\
189+ md.results.TransientSolution[1].FloatingArea,\
190 md.results.TransientSolution[2].Vx,\
191 md.results.TransientSolution[2].Vy,\
192 md.results.TransientSolution[2].Vel,\
193@@ -50,4 +52,5 @@
194 md.results.TransientSolution[2].Surface,\
195 md.results.TransientSolution[2].Thickness,\
196 md.results.TransientSolution[2].GroundedArea,\
197+ md.results.TransientSolution[2].FloatingArea,\
198 ]
199Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
200===================================================================
201--- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 19763)
202+++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 19764)
203@@ -901,6 +901,7 @@
204 MinVzEnum,
205 MaxVzEnum,
206 MaxAbsVzEnum,
207+ FloatingAreaEnum,
208 GroundedAreaEnum,
209 IceMassEnum,
210 IceVolumeEnum,
211Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
212===================================================================
213--- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 19763)
214+++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 19764)
215@@ -879,6 +879,7 @@
216 case MinVzEnum : return "MinVz";
217 case MaxVzEnum : return "MaxVz";
218 case MaxAbsVzEnum : return "MaxAbsVz";
219+ case FloatingAreaEnum : return "FloatingArea";
220 case GroundedAreaEnum : return "GroundedArea";
221 case IceMassEnum : return "IceMass";
222 case IceVolumeEnum : return "IceVolume";
223Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
224===================================================================
225--- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 19763)
226+++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 19764)
227@@ -900,6 +900,7 @@
228 else if (strcmp(name,"MinVz")==0) return MinVzEnum;
229 else if (strcmp(name,"MaxVz")==0) return MaxVzEnum;
230 else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
231+ else if (strcmp(name,"FloatingArea")==0) return FloatingAreaEnum;
232 else if (strcmp(name,"GroundedArea")==0) return GroundedAreaEnum;
233 else if (strcmp(name,"IceMass")==0) return IceMassEnum;
234 else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
235Index: ../trunk-jpl/src/c/classes/FemModel.cpp
236===================================================================
237--- ../trunk-jpl/src/c/classes/FemModel.cpp (revision 19763)
238+++ ../trunk-jpl/src/c/classes/FemModel.cpp (revision 19764)
239@@ -1008,6 +1008,7 @@
240 case IceVolumeEnum: this->IceVolumex(&double_result); break;
241 case IceVolumeAboveFloatationEnum: this->IceVolumeAboveFloatationx(&double_result); break;
242 case GroundedAreaEnum: this->GroundedAreax(&double_result); break;
243+ case FloatingAreaEnum: this->FloatingAreax(&double_result); break;
244 case MinVelEnum: this->MinVelx(&double_result); break;
245 case MaxVelEnum: this->MaxVelx(&double_result); break;
246 case MinVxEnum: this->MinVxx(&double_result); break;
247@@ -1614,6 +1615,22 @@
248 *pdiv=max_divergence;
249
250 }/*}}}*/
251+void FemModel::FloatingAreax(IssmDouble* pV){/*{{{*/
252+
253+ IssmDouble local_floating_area= 0;
254+ IssmDouble total_floating_area;
255+
256+ for(int i=0;i<this->elements->Size();i++){
257+ Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
258+ local_floating_area+=element->FloatingArea();
259+ }
260+ ISSM_MPI_Reduce(&local_floating_area,&total_floating_area,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
261+ ISSM_MPI_Bcast(&total_floating_area,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
262+
263+ /*Assign output pointers: */
264+ *pV=total_floating_area;
265+
266+}/*}}}*/
267 void FemModel::GetInputLocalMinMaxOnNodesx(IssmDouble** pmin,IssmDouble** pmax,IssmDouble* ug){/*{{{*/
268
269 /*Get vector sizes for current configuration*/
270Index: ../trunk-jpl/src/c/classes/Elements/Element.h
271===================================================================
272--- ../trunk-jpl/src/c/classes/Elements/Element.h (revision 19763)
273+++ ../trunk-jpl/src/c/classes/Elements/Element.h (revision 19764)
274@@ -193,6 +193,7 @@
275 virtual void ElementResponse(IssmDouble* presponse,int response_enum)=0;
276 virtual void ElementSizes(IssmDouble* phx,IssmDouble* phy,IssmDouble* phz)=0;
277 virtual int FiniteElement(void)=0;
278+ virtual IssmDouble FloatingArea(void)=0;
279 virtual void FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating)=0;
280 virtual Element* GetBasalElement(void)=0;
281 virtual int GetElementType(void)=0;
282Index: ../trunk-jpl/src/c/classes/Elements/Tria.cpp
283===================================================================
284--- ../trunk-jpl/src/c/classes/Elements/Tria.cpp (revision 19763)
285+++ ../trunk-jpl/src/c/classes/Elements/Tria.cpp (revision 19764)
286@@ -910,6 +910,27 @@
287 return this->element_type;
288 }
289 /*}}}*/
290+IssmDouble Tria::FloatingArea(void){/*{{{*/
291+
292+ /*Intermediaries*/
293+ int domaintype;
294+ IssmDouble phi;
295+ IssmDouble *xyz_list = NULL;
296+
297+ if(!IsIceInElement())return 0.;
298+
299+ /*Get problem dimension*/
300+ this->FindParam(&domaintype,DomainTypeEnum);
301+ if(domaintype!=Domain2DhorizontalEnum && domaintype!=Domain3DEnum) _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
302+
303+ this->GetVerticesCoordinates(&xyz_list);
304+ phi=this->GetGroundedPortion(xyz_list);
305+
306+ /*Clean up and return*/
307+ xDelete<IssmDouble>(xyz_list);
308+ return (1-phi)*this->GetArea();
309+}
310+/*}}}*/
311 void Tria::FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){/*{{{*/
312
313 if(!IsOnBase()) return;
314Index: ../trunk-jpl/src/c/classes/Elements/Tria.h
315===================================================================
316--- ../trunk-jpl/src/c/classes/Elements/Tria.h (revision 19763)
317+++ ../trunk-jpl/src/c/classes/Elements/Tria.h (revision 19764)
318@@ -72,6 +72,7 @@
319 void ElementResponse(IssmDouble* presponse,int response_enum);
320 void ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz);
321 int FiniteElement(void);
322+ IssmDouble FloatingArea(void);
323 void FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating);
324 Element* GetBasalElement(void){_error_("not implemented yet");};
325 void GetLevelsetPositivePart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlynegative,IssmDouble* levelsetvalues);
326Index: ../trunk-jpl/src/c/classes/Elements/Penta.cpp
327===================================================================
328--- ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 19763)
329+++ ../trunk-jpl/src/c/classes/Elements/Penta.cpp (revision 19764)
330@@ -654,6 +654,27 @@
331 return this->element_type;
332 }
333 /*}}}*/
334+IssmDouble Penta::FloatingArea(void){/*{{{*/
335+
336+ /*Intermediaries*/
337+ int domaintype;
338+ IssmDouble phi,base_area;
339+ IssmDouble xyz_list[NUMVERTICES][3];
340+
341+ if(!IsIceInElement() || !IsOnBase())return 0.;
342+
343+ /*Get problem dimension*/
344+ this->FindParam(&domaintype,DomainTypeEnum);
345+ if(domaintype!=Domain3DEnum) _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
346+
347+ ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
348+ phi=this->GetGroundedPortion(&xyz_list[0][0]);
349+ base_area= 1./2.*fabs((xyz_list[0][0]-xyz_list[2][0])*(xyz_list[1][1]-xyz_list[0][1]) - (xyz_list[0][0]-xyz_list[1][0])*(xyz_list[2][1]-xyz_list[0][1]));
350+
351+ /*Clean up and return*/
352+ return (1-phi)*base_area;
353+}
354+/*}}}*/
355 void Penta::FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){/*{{{*/
356
357 if(!IsOnBase()) return;
358Index: ../trunk-jpl/src/c/classes/Elements/Penta.h
359===================================================================
360--- ../trunk-jpl/src/c/classes/Elements/Penta.h (revision 19763)
361+++ ../trunk-jpl/src/c/classes/Elements/Penta.h (revision 19764)
362@@ -61,6 +61,7 @@
363 void ElementResponse(IssmDouble* presponse,int response_enum);
364 void ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz);
365 int FiniteElement(void);
366+ IssmDouble FloatingArea(void);
367 void FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating);
368 void GetAreaCoordinates(IssmDouble *area_coordinates,IssmDouble* xyz_zero,IssmDouble* xyz_list,int numpoints);
369 Element* GetBasalElement(void);
370Index: ../trunk-jpl/src/c/classes/Elements/Seg.h
371===================================================================
372--- ../trunk-jpl/src/c/classes/Elements/Seg.h (revision 19763)
373+++ ../trunk-jpl/src/c/classes/Elements/Seg.h (revision 19764)
374@@ -55,8 +55,9 @@
375 void ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum){_error_("not implemented yet");};
376 void ElementResponse(IssmDouble* presponse,int response_enum){_error_("not implemented yet");};
377 void ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){_error_("not implemented yet");};
378+ int FiniteElement(void);
379+ IssmDouble FloatingArea(void){_error_("not implemented yet");};
380 void FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){_error_("not implemented yet");};
381- int FiniteElement(void);
382 Element* GetBasalElement(void){_error_("not implemented yet");};
383 int GetElementType(void){_error_("not implemented yet");};
384 void GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating){_error_("not implemented yet");};
385Index: ../trunk-jpl/src/c/classes/Elements/Tetra.h
386===================================================================
387--- ../trunk-jpl/src/c/classes/Elements/Tetra.h (revision 19763)
388+++ ../trunk-jpl/src/c/classes/Elements/Tetra.h (revision 19764)
389@@ -60,6 +60,7 @@
390 void FaceOnFrontIndices(int* pindex1,int* pindex2,int* pindex3);
391 void FaceOnSurfaceIndices(int* pindex1,int* pindex2,int* pindex3);
392 int FiniteElement(void);
393+ IssmDouble FloatingArea(void){_error_("not implemented yet");};
394 void FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){_error_("not implemented yet");};
395 Element* GetBasalElement(void){_error_("not implemented yet");};
396 int GetElementType(void);
397Index: ../trunk-jpl/src/c/classes/FemModel.h
398===================================================================
399--- ../trunk-jpl/src/c/classes/FemModel.h (revision 19763)
400+++ ../trunk-jpl/src/c/classes/FemModel.h (revision 19764)
401@@ -81,6 +81,7 @@
402 void TotalSmbx(IssmDouble* pSmb);
403 void Divergencex(IssmDouble* pdiv);
404 void MaxDivergencex(IssmDouble* pdiv);
405+ void FloatingAreax(IssmDouble* pV);
406 void GroundedAreax(IssmDouble* pV);
407 void IceMassx(IssmDouble* pV);
408 void IceVolumex(IssmDouble* pV);
409Index: ../trunk-jpl/src/m/enum/FloatingAreaEnum.m
410===================================================================
411--- ../trunk-jpl/src/m/enum/FloatingAreaEnum.m (revision 0)
412+++ ../trunk-jpl/src/m/enum/FloatingAreaEnum.m (revision 19764)
413@@ -0,0 +1,11 @@
414+function macro=FloatingAreaEnum()
415+%FLOATINGAREAENUM - Enum of FloatingArea
416+%
417+% WARNING: DO NOT MODIFY THIS FILE
418+% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
419+% Please read src/c/shared/Enum/README for more information
420+%
421+% Usage:
422+% macro=FloatingAreaEnum()
423+
424+macro=StringToEnum('FloatingArea');
425Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
426===================================================================
427--- ../trunk-jpl/src/m/enum/EnumDefinitions.py (revision 19763)
428+++ ../trunk-jpl/src/m/enum/EnumDefinitions.py (revision 19764)
429@@ -871,6 +871,7 @@
430 def MinVzEnum(): return StringToEnum("MinVz")[0]
431 def MaxVzEnum(): return StringToEnum("MaxVz")[0]
432 def MaxAbsVzEnum(): return StringToEnum("MaxAbsVz")[0]
433+def FloatingAreaEnum(): return StringToEnum("FloatingArea")[0]
434 def GroundedAreaEnum(): return StringToEnum("GroundedArea")[0]
435 def IceMassEnum(): return StringToEnum("IceMass")[0]
436 def IceVolumeEnum(): return StringToEnum("IceVolume")[0]
Note: See TracBrowser for help on using the repository browser.