@@ -19,6 +19,7 @@ enum MeshFieldIndex{
1919 MeshF_Unsupported,
2020 MeshF_VtxCoords,
2121 MeshF_VtxRotLat,
22+ MeshF_VtxRotLon,
2223 MeshF_ElmCenterXYZ,
2324 MeshF_DualTriangleArea,
2425 MeshF_Vel,
@@ -55,6 +56,7 @@ enum MeshFieldType{
5556template <MeshFieldIndex> struct meshFieldToType ;
5657template <> struct meshFieldToType < MeshF_VtxCoords > { using type = Kokkos::View<vec3d_t *>; };
5758template <> struct meshFieldToType < MeshF_VtxRotLat > { using type = DoubleView; };
59+ template <> struct meshFieldToType < MeshF_VtxRotLon > { using type = DoubleView; };
5860template <> struct meshFieldToType < MeshF_ElmCenterXYZ > { using type = Kokkos::View<vec3d_t *>; };
5961template <> struct meshFieldToType < MeshF_DualTriangleArea > { using type = Kokkos::View<doubleSclr_t*>; };
6062template <> struct meshFieldToType < MeshF_Vel > { using type = Kokkos::View<vec2d_t *>; };
@@ -88,6 +90,7 @@ const std::map<MeshFieldIndex, std::pair<MeshFieldType, std::string>> meshFields
8890 {MeshF_Unsupported, {MeshFType_Unsupported," MeshField_Unsupported" }},
8991 {MeshF_VtxCoords, {MeshFType_VtxBased," MeshField_VerticesCoords" }},
9092 {MeshF_VtxRotLat, {MeshFType_VtxBased," MeshField_VerticesLatitude" }},
93+ {MeshF_VtxRotLon, {MeshFType_VtxBased," MeshField_VerticesLongitude" }},
9194 {MeshF_ElmCenterXYZ, {MeshFType_ElmBased," MeshField_ElementCenterXYZ" }},
9295 {MeshF_DualTriangleArea, {MeshFType_VtxBased," MeshField_DualTriangleArea" }},
9396 {MeshF_Vel, {MeshFType_VtxBased," MeshField_Velocity" }},
@@ -144,6 +147,7 @@ class Mesh {
144147 // start of meshFields
145148 MeshFView<MeshF_VtxCoords> vtxCoords_;
146149 MeshFView<MeshF_VtxRotLat> vtxRotLat_;
150+ MeshFView<MeshF_VtxRotLon> vtxRotLon_;
147151 MeshFView<MeshF_ElmCenterXYZ> elmCenterXYZ_;
148152 MeshFView<MeshF_DualTriangleArea> dualTriangleArea_;
149153
@@ -159,7 +163,7 @@ class Mesh {
159163 // GnomonicProjection
160164 MeshFView<MeshF_VtxGnomProj> vtxGnomProj_;
161165 MeshFView<MeshF_ElmCenterGnomProj> elmCenterGnomProj_;
162-
166+
163167 MeshFView<MeshF_TanLatVertexRotatedOverRadius> tanLatVertexRotatedOverRadius_;
164168 MeshFView<MeshF_SolveStress> solveStress_;
165169 MeshFView<MeshF_SolveVelocity> solveVelocity_;
@@ -276,7 +280,7 @@ class Mesh {
276280 return dynamicTimeStep_;
277281 }
278282
279- void calcOceanStressCoeff ();
283+ void calcOceanStressCoeff (const double configIceOceanDragCoeff);
280284 void gridSolveGPU ();
281285 void aggregateDeluDyn ();
282286 void applyFreeSlipBC ();
@@ -298,6 +302,9 @@ auto Mesh::getMeshField(){
298302 else if constexpr (index==MeshF_VtxRotLat){
299303 return vtxRotLat_;
300304 }
305+ else if constexpr (index==MeshF_VtxRotLon){
306+ return vtxRotLon_;
307+ }
301308 else if constexpr (index==MeshF_ElmCenterXYZ){
302309 return elmCenterXYZ_;
303310 }
0 commit comments