From 46a2687e9c6c9265dacb03e8da7eb4be9a57801a Mon Sep 17 00:00:00 2001 From: mac/cli <chengcli@umich.edu> Date: Sun, 10 Mar 2024 17:05:09 -0400 Subject: [PATCH 01/22] Remove check_reconstruct --- src/checks.cpp | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/src/checks.cpp b/src/checks.cpp index 045aea3a..ae9700db 100644 --- a/src/checks.cpp +++ b/src/checks.cpp @@ -83,24 +83,7 @@ void check_eos_cons2prim(AthenaArray<Real> const& prim, int k, int j, int il, } void check_reconstruct(AthenaArray<Real> const& wl, AthenaArray<Real> const& wr, - int dir, int k, int j, int il, int iu) { -#ifdef ENABLE_GLOG - for (int i = il; i <= iu; ++i) { - char name[80]; - snprintf(name, 80, "wl-den-%d", dir + 1); - LOG_IF(FATAL, wl(IDN, i) < 0.) << print_column_table(name, wl, il, iu); - - snprintf(name, 80, "wr-den-%d", dir + 1); - LOG_IF(FATAL, wr(IDN, i) < 0.) << print_column_table(name, wr, il, iu); - - snprintf(name, 80, "wl-pre-%d", dir + 1); - LOG_IF(FATAL, wl(IPR, i) < 0.) << print_column_table(name, wl, il, iu); - - snprintf(name, 80, "wr-pre-%d", dir + 1); - LOG_IF(FATAL, wr(IPR, i) < 0.) << print_column_table(name, wr, il, iu); - } -#endif // ENABLE_GLOG -} + int dir, int k, int j, int il, int iu) {} void check_hydro_riemann_solver_flux(AthenaArray<Real> const& flux, int ivx, int k, int j, int il, int iu) { From 81ed0365c07fd9a5812cb2874739cbf0889f6fa4 Mon Sep 17 00:00:00 2001 From: mac/cli <chengcli@umich.edu> Date: Fri, 15 Mar 2024 23:04:43 -0400 Subject: [PATCH 02/22] wip --- src/exo3/cs_velocity_rotation.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/exo3/cs_velocity_rotation.hpp diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp new file mode 100644 index 00000000..36ea0687 --- /dev/null +++ b/src/exo3/cs_velocity_rotation.hpp @@ -0,0 +1,9 @@ +#ifndef SRC_EXO3_VELOCITY_ROTATION_HPP_ +#define SRC_EXO3_VELOCITY_ROTATION_HPP_ + +template <typename T> +inline void cs_vel_p1_to_p2(T *v1, T *v2, T *v3) { + // fill in code here +} + +#endif // SRC_EXO3_VELOCITY_ROTATION_HPP_ From edcda980c52057143493cd9981cac3df8b5d261a Mon Sep 17 00:00:00 2001 From: mac/cli <chengcli@umich.edu> Date: Sat, 16 Mar 2024 11:08:47 -0400 Subject: [PATCH 03/22] wip --- src/exo3/cs_velocity_rotation.hpp | 57 +++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 36ea0687..b56bef2b 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -1,9 +1,62 @@ #ifndef SRC_EXO3_VELOCITY_ROTATION_HPP_ #define SRC_EXO3_VELOCITY_ROTATION_HPP_ -template <typename T> -inline void cs_vel_p1_to_p2(T *v1, T *v2, T *v3) { +#include <athena/athena.hpp> // Real + +//! Panel number assiangments +//! (1) Top +//! (2) Front +//! (3) Left +//! +//! z +//! ___________ | +//! |\ .\ x___| (1) +//! | \ 1 . \ / +//! | \_________\ y/ +//! | 3 | . | +//! \. .|...... | +//! z___ (3) \ | 2 . | +//! /| \ | .| y +//! / | \|________| | +//! y x (2) |___x +//! / +//! z/ + +//! Panel number assiangments +//! (4) Right +//! (5) Bottom +//! (6) Back +//! y x +//! __________ | / +//! |\ .\ |/___z +//! | \ . \ (4) +//! y z | \________\ +//! | / | | 6 . | +//! x___|/ |..|...... | +//! (6) \ | . 4| (5) ___ x +//! \ | 5 . | /| +//! \|_______.| / | +//! y z + +namespace CubedSphereUtility { + +//! Transform cubed sphere velocity to local cartesian velocity +inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) {} + +//! Transform local cartesian velocity to cubed sphere velocity +inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) {} + +//! Transform cubed sphere velocity from panel 1 to panel 2 +//! \param a $x = \tan(\xi)$ coordinate +//! \param b $y = \tan(\eta)$ coordinate +inline void vel_zab_p1_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b); + // fill in code here + + vel_zxy_to_zab(v1, v2, v3, a, b); } +} // namespace CubedSphereUtility + #endif // SRC_EXO3_VELOCITY_ROTATION_HPP_ From d0c7bb66a55d496f1cf73f451437871aa2e5949f Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Mon, 18 Mar 2024 00:15:26 -0400 Subject: [PATCH 04/22] plane to plane transformation implement --- src/exo3/cs_velocity_rotation.hpp | 309 +++++++++++++++++++++++++++++- 1 file changed, 303 insertions(+), 6 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index b56bef2b..a94a37a8 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -41,20 +41,317 @@ namespace CubedSphereUtility { //! Transform cubed sphere velocity to local cartesian velocity -inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) {} +inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) { + +} //! Transform local cartesian velocity to cubed sphere velocity -inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) {} +inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) { + +} //! Transform cubed sphere velocity from panel 1 to panel 2 -//! \param a $x = \tan(\xi)$ coordinate +//! \param a $x = \tan(\xi)$ coordinates //! \param b $y = \tan(\eta)$ coordinate + +inline void vel_zab_p1_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,1}, {0,1,0}, {-1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p2_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,1}, {0,1,0}, {-1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p3_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,1}, {0,1,0}, {-1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p4_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,1}, {0,1,0}, {-1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p3_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,-1}, {0,1,0}, {1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p5_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,-1}, {0,1,0}, {1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p4_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,-1}, {0,1,0}, {1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p6_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,-1}, {0,1,0}, {1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p1_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{-1,0,0}, {0,1,0}, {0,0,-1}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p2_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{-1,0,0}, {0,1,0}, {0,0,-1}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p6_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{-1,0,0}, {0,1,0}, {0,0,-1}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p5_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{-1,0,0}, {0,1,0}, {0,0,-1}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p5_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{-1,0,0}, {0,0,-1}, {0,-1,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p2_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{-1,0,0}, {0,-1,0}, {0,0,-1}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p5_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,-1,0}, {0,0,-1}, {1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p4_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,1}, {-1,0,0}, {0,-1,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p5_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{1,0,0}, {0,0,-1}, {0,1,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p6_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{1,0,0}, {0,0,1}, {0,-1,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p3_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,-1}, {1,0,0}, {0,-1,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p2_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,1,0}, {0,0,-1}, {-1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p3_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,-1,0}, {1,0,0}, {0,0,1}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p4_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,1,0}, {-1,0,0}, {0,0,1}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p3_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,1}, {1,0,0}, {0,1,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p6_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,1,0}, {0,0,1}, {1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + inline void vel_zab_p1_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b); + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,1}, {1,0,0}, {0,1,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} - // fill in code here +inline void vel_zab_p2_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,1,0}, {0,0,1}, {1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p1_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,-1,0}, {0,0,1}, {-1,0,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p4_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{0,0,-1}, {-1,0,0}, {0,1,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} + +inline void vel_zab_p1_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{-1,0,0}, {0,0,1}, {0,1,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +} - vel_zxy_to_zab(v1, v2, v3, a, b); +inline void vel_zab_p6_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { + vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + M[3][3]={{-1,0,0}, {0,0,1}, {0,1,0}};//define the transformation matrix + //multiply the velocity vector on the right of the transformation + v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; + v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; + v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; + vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate } } // namespace CubedSphereUtility From 0ca59dcc2aa169a566c6d559955d5b1c3fe097aa Mon Sep 17 00:00:00 2001 From: mac/cli <chengcli@umich.edu> Date: Mon, 18 Mar 2024 00:45:44 -0400 Subject: [PATCH 05/22] wip --- src/exo3/cs_velocity_rotation.hpp | 588 +++++++++++++++++++----------- 1 file changed, 370 insertions(+), 218 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index a94a37a8..86d0fc6f 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -41,317 +41,469 @@ namespace CubedSphereUtility { //! Transform cubed sphere velocity to local cartesian velocity -inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) { - -} +inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) {} //! Transform local cartesian velocity to cubed sphere velocity -inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) { - -} +inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) {} //! Transform cubed sphere velocity from panel 1 to panel 2 //! \param a $x = \tan(\xi)$ coordinates //! \param b $y = \tan(\eta)$ coordinate - -inline void vel_zab_p1_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,1}, {0,1,0}, {-1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate +inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + + switch (panel) { + case 2: + // z->y, x->-x, y->z + (*vx) *= -1; + vel_zxy_to_zab(vy, vx, vz, a, b); + break; + case 3: + // z->-x, x->z, y->y + (*vz) *= -1; + vel_zxy_to_zab(vx, vz, vy, a, b); + break; + case 4: + break; + case 6: + break; + } } inline void vel_zab_p2_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,1}, {0,1,0}, {-1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, 1}, {0, 1, 0}, {-1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p3_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,1}, {0,1,0}, {-1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, 1}, {0, 1, 0}, {-1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p4_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,1}, {0,1,0}, {-1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, 1}, {0, 1, 0}, {-1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p3_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,-1}, {0,1,0}, {1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, -1}, {0, 1, 0}, {1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p5_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,-1}, {0,1,0}, {1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, -1}, {0, 1, 0}, {1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p4_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,-1}, {0,1,0}, {1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, -1}, {0, 1, 0}, {1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p6_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,-1}, {0,1,0}, {1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, -1}, {0, 1, 0}, {1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p1_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{-1,0,0}, {0,1,0}, {0,0,-1}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {-1, 0, 0}, {0, 1, 0}, {0, 0, -1}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p2_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{-1,0,0}, {0,1,0}, {0,0,-1}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {-1, 0, 0}, {0, 1, 0}, {0, 0, -1}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p6_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{-1,0,0}, {0,1,0}, {0,0,-1}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {-1, 0, 0}, {0, 1, 0}, {0, 0, -1}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p5_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{-1,0,0}, {0,1,0}, {0,0,-1}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {-1, 0, 0}, {0, 1, 0}, {0, 0, -1}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p5_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{-1,0,0}, {0,0,-1}, {0,-1,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {-1, 0, 0}, {0, 0, -1}, {0, -1, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p2_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{-1,0,0}, {0,-1,0}, {0,0,-1}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {-1, 0, 0}, {0, -1, 0}, {0, 0, -1}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p5_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,-1,0}, {0,0,-1}, {1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, -1, 0}, {0, 0, -1}, {1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p4_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,1}, {-1,0,0}, {0,-1,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, 1}, {-1, 0, 0}, {0, -1, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p5_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{1,0,0}, {0,0,-1}, {0,1,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {1, 0, 0}, {0, 0, -1}, {0, 1, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p6_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{1,0,0}, {0,0,1}, {0,-1,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {1, 0, 0}, {0, 0, 1}, {0, -1, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p3_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,-1}, {1,0,0}, {0,-1,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, -1}, {1, 0, 0}, {0, -1, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p2_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,1,0}, {0,0,-1}, {-1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 1, 0}, {0, 0, -1}, {-1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p3_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,-1,0}, {1,0,0}, {0,0,1}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, -1, 0}, {1, 0, 0}, {0, 0, 1}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p4_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,1,0}, {-1,0,0}, {0,0,1}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 1, 0}, {-1, 0, 0}, {0, 0, 1}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p3_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,1}, {1,0,0}, {0,1,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, 1}, {1, 0, 0}, {0, 1, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p6_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,1,0}, {0,0,1}, {1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 1, 0}, {0, 0, 1}, {1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p1_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,1}, {1,0,0}, {0,1,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, 1}, {1, 0, 0}, {0, 1, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p2_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,1,0}, {0,0,1}, {1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 1, 0}, {0, 0, 1}, {1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p1_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,-1,0}, {0,0,1}, {-1,0,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, -1, 0}, {0, 0, 1}, {-1, 0, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p4_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{0,0,-1}, {-1,0,0}, {0,1,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {0, 0, -1}, {-1, 0, 0}, {0, 1, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p1_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{-1,0,0}, {0,0,1}, {0,1,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {-1, 0, 0}, {0, 0, 1}, {0, 1, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } inline void vel_zab_p6_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate - M[3][3]={{-1,0,0}, {0,0,1}, {0,1,0}};//define the transformation matrix - //multiply the velocity vector on the right of the transformation - v1 = M[0][0]*v1+M[1][0]*v2+M[2][0]*v3; - v2 = M[0][1]*v1+M[1][1]*v2+M[2][1]*v3; - v2 = M[0][2]*v1+M[1][2]*v2+M[2][2]*v3; - vel_zxy_to_zab(v1, v2, v3, a, b);//translate the cubed sphere coordinate into cartesian coordinate + vel_zab_to_zxy( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate + M[3][3] = { + {-1, 0, 0}, {0, 0, 1}, {0, 1, 0}}; // define the transformation matrix + // multiply the velocity vector on the right of the transformation + v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; + v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; + v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; + vel_zxy_to_zab( + v1, v2, v3, a, + b); // translate the cubed sphere coordinate into cartesian coordinate } } // namespace CubedSphereUtility From ea9521b595dcdf6022a4823e6b2940e1c3f46c03 Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Mon, 18 Mar 2024 01:05:42 -0400 Subject: [PATCH 06/22] transform from plane 1 to others --- src/exo3/cs_velocity_rotation.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 86d0fc6f..0bf23bc5 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -65,8 +65,15 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, vel_zxy_to_zab(vx, vz, vy, a, b); break; case 4: + // z->-x, x->-y, y->z + (*vz) *= -1; + (*vx) *= -1; + vel_zxy_to_zab(vy, vz, vx, a, b); break; case 6: + // z->-y, x->x, y->z + (*vz) *= -1; + vel_zxy_to_zab(vx, vz, vy, a, b); break; } } From 46df6c8f78eb4d5a5d3b24b1c248428e517ca1c0 Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Mon, 18 Mar 2024 01:07:52 -0400 Subject: [PATCH 07/22] transform from plane 1 to others correction --- src/exo3/cs_velocity_rotation.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 0bf23bc5..58571af6 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -68,12 +68,12 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, // z->-x, x->-y, y->z (*vz) *= -1; (*vx) *= -1; - vel_zxy_to_zab(vy, vz, vx, a, b); + vel_zxy_to_zab(vx, vy, vz, a, b); break; case 6: // z->-y, x->x, y->z (*vz) *= -1; - vel_zxy_to_zab(vx, vz, vy, a, b); + vel_zxy_to_zab(vy, vx, vz, a, b); break; } } From 7dfcc01af74be44bcc7971b8db6a4fedeca66a8a Mon Sep 17 00:00:00 2001 From: mac/cli <chengcli@umich.edu> Date: Mon, 18 Mar 2024 01:18:23 -0400 Subject: [PATCH 08/22] wip --- src/exo3/cs_velocity_rotation.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 58571af6..39c2a48a 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -66,13 +66,15 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, break; case 4: // z->-x, x->-y, y->z - (*vz) *= -1; + // z->y, x->-z, y->-x (*vx) *= -1; + (*vy) *= -1; vel_zxy_to_zab(vx, vy, vz, a, b); break; case 6: // z->-y, x->x, y->z - (*vz) *= -1; + // z->y, x->x, y->-z + (*vy) *= -1; vel_zxy_to_zab(vy, vx, vz, a, b); break; } From 9f25700edf64ec13e968733f6d1b5e27d6e49f9f Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Mon, 18 Mar 2024 01:28:52 -0400 Subject: [PATCH 09/22] update --- src/exo3/cs_velocity_rotation.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 39c2a48a..e4494e57 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -65,14 +65,12 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, vel_zxy_to_zab(vx, vz, vy, a, b); break; case 4: - // z->-x, x->-y, y->z // z->y, x->-z, y->-x (*vx) *= -1; (*vy) *= -1; vel_zxy_to_zab(vx, vy, vz, a, b); break; case 6: - // z->-y, x->x, y->z // z->y, x->x, y->-z (*vy) *= -1; vel_zxy_to_zab(vy, vx, vz, a, b); From e04015de65c991b207a799e78bcec783c851e0e7 Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Mon, 18 Mar 2024 01:45:45 -0400 Subject: [PATCH 10/22] modified --- src/exo3/cs_velocity_rotation.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index e4494e57..c4cb2af3 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -68,7 +68,7 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, // z->y, x->-z, y->-x (*vx) *= -1; (*vy) *= -1; - vel_zxy_to_zab(vx, vy, vz, a, b); + vel_zxy_to_zab(vy, vz, vx, a, b); break; case 6: // z->y, x->x, y->-z From e9676be34ba0e795465dea81640b24a8ca4aa495 Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Mon, 18 Mar 2024 12:15:50 -0400 Subject: [PATCH 11/22] update on panel 1 --- src/exo3/cs_velocity_rotation.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index c4cb2af3..c34c189c 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -65,13 +65,13 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, vel_zxy_to_zab(vx, vz, vy, a, b); break; case 4: - // z->y, x->-z, y->-x + // z->-x, x->-y, y->z (*vx) *= -1; (*vy) *= -1; - vel_zxy_to_zab(vy, vz, vx, a, b); + vel_zxy_to_zab(vx, vy, vz, a, b); break; case 6: - // z->y, x->x, y->-z + // z->-y, x->x, y->z (*vy) *= -1; vel_zxy_to_zab(vy, vx, vz, a, b); break; From 515becef3bfa1d1a02b6b1f9c51548c27600583f Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Mon, 18 Mar 2024 22:40:25 -0400 Subject: [PATCH 12/22] test added and correction --- src/exo3/cs_velocity_rotation.hpp | 34 +++++++++++++++++++++++++++-- tests/CMakeLists.txt | 1 + tests/test_cs_velocity_rotation.cpp | 34 +++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 tests/test_cs_velocity_rotation.cpp diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index c34c189c..3b0e5dd3 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -21,7 +21,7 @@ //! y x (2) |___x //! / //! z/ - + //! Panel number assiangments //! (4) Right //! (5) Bottom @@ -78,6 +78,36 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, } } +inline void vel_zab_from_p1_test(std::vector<Real> &v, int panel) { + Real vz = v[0]; + Real vx = v[1]; + Real vy = v[2]; + switch (panel) { + case 2: + // z->y, x->-x, y->z + //(*vx) *= -1; + v = {vy, -vx, vz}; + break; + case 3: + // z->-x, x->z, y->y + //(*vz) *= -1; + v = {vx, -vz, vy}; + break; + case 4: + // z->-x, x->-y, y->z + //(*vx) *= -1; + //(*vy) *= -1; + v = {-vx, -vy, vz}; + break; + case 6: + // z->-y, x->x, y->z + //(*vy) *= -1; + v = {-vy, vx, vz}; + break; + } + +} +/* inline void vel_zab_p2_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { vel_zab_to_zxy( v1, v2, v3, a, @@ -512,7 +542,7 @@ inline void vel_zab_p6_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { v1, v2, v3, a, b); // translate the cubed sphere coordinate into cartesian coordinate } - +*/ } // namespace CubedSphereUtility #endif // SRC_EXO3_VELOCITY_ROTATION_HPP_ diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 7b8c7a88..5c8eb489 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -17,6 +17,7 @@ setup_test(test_read_cia_ff) setup_test(test_read_rayleigh) setup_test(test_read_yaml) setup_test(test_helios_ck_read) +setup_test(test_cs_velocity_rotation) if (PVFMM_OPTION STREQUAL "ENABLE_PVFMM") setup_test(test_nbody) diff --git a/tests/test_cs_velocity_rotation.cpp b/tests/test_cs_velocity_rotation.cpp new file mode 100644 index 00000000..3173e464 --- /dev/null +++ b/tests/test_cs_velocity_rotation.cpp @@ -0,0 +1,34 @@ +// C/C++ +#include <algorithm> +#include <cmath> +#include <vector> + +// external +#include <gtest/gtest.h> + +#include <application/application.hpp> + +// athena +#include <athena/athena_arrays.hpp> + +// exo3 +#include <exo3/cs_velocity_rotation.hpp> + +TEST(vel_zab_from_p1_test, test_case_to_4) { + std::vector <Real> result = {1,2,3}; + std::vector <Real> expected_result = {-2,-3,1}; + CubedSphereUtility::vel_zab_from_p1_test(result, 4); + EXPECT_EQ(result, expected_result); +} + +TEST(vel_zab_from_p1_test, test_case_to_6) { + std::vector <Real> result = {1,2,3}; + std::vector <Real> expected_result = {-3,2,1}; + CubedSphereUtility::vel_zab_from_p1_test(result, 6); + EXPECT_EQ(result, expected_result); +} + +int main(int argc, char **argv) { + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} \ No newline at end of file From d7e73f69e71f3929c54aeb070686d8bb03a4f3f9 Mon Sep 17 00:00:00 2001 From: ziggy/cli <chengcli@umich.edu> Date: Tue, 19 Mar 2024 00:01:17 -0400 Subject: [PATCH 13/22] wip --- data/fetch_exogcm_opacity.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data/fetch_exogcm_opacity.sh b/data/fetch_exogcm_opacity.sh index 5033c06b..7b7047f1 100755 --- a/data/fetch_exogcm_opacity.sh +++ b/data/fetch_exogcm_opacity.sh @@ -5,7 +5,8 @@ FILE="ck_data_01242024" DATA_DIR=$1/ # Dropbox link -DROPBOX_LINK="https://www.dropbox.com/scl/fi/tt2vez9jadfcq3j0wdw8x/ck_data_01242024.tar.gz?rlkey=dv7tmqpfy2uvs0u5lt2wz3c4k&dl=0" +#DROPBOX_LINK="https://www.dropbox.com/scl/fi/tt2vez9jadfcq3j0wdw8x/ck_data_01242024.tar.gz?rlkey=dv7tmqpfy2uvs0u5lt2wz3c4k&dl=0" +DROPBOX_LINK="https://www.dropbox.com/scl/fi/6nohk2uv89pupe8tjj9ib/ck_data_01242024.tar.gz?rlkey=58gjv5re6fusz1s9jk9fgpx95&dl=0" # Read expected SHA256 from the file EXPECTED_SHA256=$(grep "$FILE" ${DATA_DIR}checksums.txt | awk '{print $1}') From f6baa0920e2eed8cb4b9e24a304df6c60ddd80c9 Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Fri, 22 Mar 2024 18:34:32 -0400 Subject: [PATCH 14/22] rotational transformation --- src/exo3/cs_velocity_rotation.hpp | 456 +----------------------------- 1 file changed, 15 insertions(+), 441 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 3b0e5dd3..38a77492 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -41,14 +41,25 @@ namespace CubedSphereUtility { //! Transform cubed sphere velocity to local cartesian velocity -inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) {} +inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) { + +} //! Transform local cartesian velocity to cubed sphere velocity -inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) {} +inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) { + Real vx = v2; + Real vy = v3; + Real delta = pow(pow(vx,2)+pow(vy,2)+1,1/2); + Real C = pow(1+pow(x,2),1/2); + Real D = pow(1+pow(y,2),1/2); + v1 = (vz+pow(vx,2)+pow(vy,2))/delta; + v2 = (-vx*vz/D+vx*(1+pow(vy,2))/D-vx*pow(vy,2)/D)/delta; + v3 = (-vy*vz/C-pow(vx,2)*vy/C+(1+pow(vx,2))*vy/C)/delta; +} //! Transform cubed sphere velocity from panel 1 to panel 2 //! \param a $x = \tan(\xi)$ coordinates -//! \param b $y = \tan(\eta)$ coordinate +//! \param b $y = \tan(\eta)$ coordinat inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, int panel) { vel_zab_to_zxy(vz, vx, vy, a, b); @@ -105,444 +116,7 @@ inline void vel_zab_from_p1_test(std::vector<Real> &v, int panel) { v = {-vy, vx, vz}; break; } - -} -/* -inline void vel_zab_p2_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, 1}, {0, 1, 0}, {-1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p3_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, 1}, {0, 1, 0}, {-1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p4_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, 1}, {0, 1, 0}, {-1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p3_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, -1}, {0, 1, 0}, {1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p5_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, -1}, {0, 1, 0}, {1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p4_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, -1}, {0, 1, 0}, {1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p6_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, -1}, {0, 1, 0}, {1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p1_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {-1, 0, 0}, {0, 1, 0}, {0, 0, -1}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p2_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {-1, 0, 0}, {0, 1, 0}, {0, 0, -1}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p6_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {-1, 0, 0}, {0, 1, 0}, {0, 0, -1}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p5_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {-1, 0, 0}, {0, 1, 0}, {0, 0, -1}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p5_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {-1, 0, 0}, {0, 0, -1}, {0, -1, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p2_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {-1, 0, 0}, {0, -1, 0}, {0, 0, -1}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p5_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, -1, 0}, {0, 0, -1}, {1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p4_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, 1}, {-1, 0, 0}, {0, -1, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p5_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {1, 0, 0}, {0, 0, -1}, {0, 1, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p6_to_p5(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {1, 0, 0}, {0, 0, 1}, {0, -1, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p3_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, -1}, {1, 0, 0}, {0, -1, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p2_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 1, 0}, {0, 0, -1}, {-1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p3_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, -1, 0}, {1, 0, 0}, {0, 0, 1}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p4_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 1, 0}, {-1, 0, 0}, {0, 0, 1}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p3_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, 1}, {1, 0, 0}, {0, 1, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p6_to_p3(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 1, 0}, {0, 0, 1}, {1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p1_to_p2(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, 1}, {1, 0, 0}, {0, 1, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p2_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 1, 0}, {0, 0, 1}, {1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p1_to_p4(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, -1, 0}, {0, 0, 1}, {-1, 0, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p4_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {0, 0, -1}, {-1, 0, 0}, {0, 1, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p1_to_p6(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {-1, 0, 0}, {0, 0, 1}, {0, 1, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} - -inline void vel_zab_p6_to_p1(Real *v1, Real *v2, Real *v3, Real a, Real b) { - vel_zab_to_zxy( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate - M[3][3] = { - {-1, 0, 0}, {0, 0, 1}, {0, 1, 0}}; // define the transformation matrix - // multiply the velocity vector on the right of the transformation - v1 = M[0][0] * v1 + M[1][0] * v2 + M[2][0] * v3; - v2 = M[0][1] * v1 + M[1][1] * v2 + M[2][1] * v3; - v2 = M[0][2] * v1 + M[1][2] * v2 + M[2][2] * v3; - vel_zxy_to_zab( - v1, v2, v3, a, - b); // translate the cubed sphere coordinate into cartesian coordinate -} -*/ + } } // namespace CubedSphereUtility #endif // SRC_EXO3_VELOCITY_ROTATION_HPP_ From c9ddef2877e2472149bec9e6d60b4cfcd072ac19 Mon Sep 17 00:00:00 2001 From: mac/cli <chengcli@umich.edu> Date: Sat, 23 Mar 2024 17:39:49 -0400 Subject: [PATCH 15/22] cs_velocity_rotation.hpp --- src/exo3/cs_velocity_rotation.hpp | 40 ++++++++++++++++++------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 38a77492..4bddc0da 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -21,7 +21,7 @@ //! y x (2) |___x //! / //! z/ - + //! Panel number assiangments //! (4) Right //! (5) Bottom @@ -41,20 +41,26 @@ namespace CubedSphereUtility { //! Transform cubed sphere velocity to local cartesian velocity -inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) { - -} +inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) {} //! Transform local cartesian velocity to cubed sphere velocity inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) { - Real vx = v2; - Real vy = v3; - Real delta = pow(pow(vx,2)+pow(vy,2)+1,1/2); - Real C = pow(1+pow(x,2),1/2); - Real D = pow(1+pow(y,2),1/2); - v1 = (vz+pow(vx,2)+pow(vy,2))/delta; - v2 = (-vx*vz/D+vx*(1+pow(vy,2))/D-vx*pow(vy,2)/D)/delta; - v3 = (-vy*vz/C-pow(vx,2)*vy/C+(1+pow(vx,2))*vy/C)/delta; + Real x = tan(a); + Real y = tan(b); + + Real vx = *v2; + Real vy = *v3; + Real vz = *v1; + + Real delta = pow(pow(x, 2) + pow(y, 2) + 1, 1 / 2); + Real C = pow(1 + pow(x, 2), 1 / 2); + Real D = pow(1 + pow(y, 2), 1 / 2); + + *v1 = (vz + pow(vx, 2) + pow(vy, 2)) / delta; + *v2 = + (-vx * vz / D + vx * (1 + pow(vy, 2)) / D - vx * pow(vy, 2) / D) / delta; + *v3 = + (-vy * vz / C - pow(vx, 2) * vy / C + (1 + pow(vx, 2)) * vy / C) / delta; } //! Transform cubed sphere velocity from panel 1 to panel 2 @@ -90,10 +96,10 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, } inline void vel_zab_from_p1_test(std::vector<Real> &v, int panel) { - Real vz = v[0]; - Real vx = v[1]; - Real vy = v[2]; - switch (panel) { + Real vz = v[0]; + Real vx = v[1]; + Real vy = v[2]; + switch (panel) { case 2: // z->y, x->-x, y->z //(*vx) *= -1; @@ -116,7 +122,7 @@ inline void vel_zab_from_p1_test(std::vector<Real> &v, int panel) { v = {-vy, vx, vz}; break; } - } +} } // namespace CubedSphereUtility #endif // SRC_EXO3_VELOCITY_ROTATION_HPP_ From b0b20fd9b2911d5378f0a1eafbb57ec8af1a1897 Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Tue, 26 Mar 2024 03:54:21 -0400 Subject: [PATCH 16/22] ab to xy and xy to ab --- src/exo3/cs_velocity_rotation.hpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 4bddc0da..098c2e69 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -41,7 +41,24 @@ namespace CubedSphereUtility { //! Transform cubed sphere velocity to local cartesian velocity -inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) {} +inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) { + Real x = tan(a); + Real y = tan(b); + + Real vx = *v2; + Real vy = *v3; + Real vz = *v1; + + Real delta = pow(pow(x, 2) + pow(y, 2) + 1, 1 / 2); + Real C = pow(1 + pow(x, 2), 1 / 2); + Real D = pow(1 + pow(y, 2), 1 / 2); + + *v1 = (vz - D * x * vx - C * y * vy) / delta; + *v2 = + (x * vz + D * vx) / delta; + *v3 = + (y * vz + C * vy) / delta; +} //! Transform local cartesian velocity to cubed sphere velocity inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) { @@ -56,11 +73,11 @@ inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) { Real C = pow(1 + pow(x, 2), 1 / 2); Real D = pow(1 + pow(y, 2), 1 / 2); - *v1 = (vz + pow(vx, 2) + pow(vy, 2)) / delta; + *v1 = (vz + x * vx + y * vy) / delta; *v2 = - (-vx * vz / D + vx * (1 + pow(vy, 2)) / D - vx * pow(vy, 2) / D) / delta; + (-x * vz / D + vx * (1 + pow(vy, 2)) / D - vy * x * y / D) / delta; *v3 = - (-vy * vz / C - pow(vx, 2) * vy / C + (1 + pow(vx, 2)) * vy / C) / delta; + (-y * vz / C - x * y * vx / C + (1 + pow(x, 2)) * vy / C) / delta; } //! Transform cubed sphere velocity from panel 1 to panel 2 From c40270701307f25563bb5c4662dd8d82651248d0 Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Tue, 26 Mar 2024 21:07:31 -0400 Subject: [PATCH 17/22] rotation panel 1 done --- data/ck_data_01242024.tar.gz | 169 ++++++++++++++++++++++++ src/exo3/cs_velocity_rotation.hpp | 192 +++++++++++++++++++++++----- tests/test_cs_velocity_rotation.cpp | 72 +++++++++-- 3 files changed, 388 insertions(+), 45 deletions(-) create mode 100644 data/ck_data_01242024.tar.gz diff --git a/data/ck_data_01242024.tar.gz b/data/ck_data_01242024.tar.gz new file mode 100644 index 00000000..1dad420e --- /dev/null +++ b/data/ck_data_01242024.tar.gz @@ -0,0 +1,169 @@ +<!DOCTYPE html> +<html class="maestro global-header" xmlns="http://www.w3.org/1999/xhtml" lang="en"> +<head><meta charset="utf-8" /> +<meta content="noindex, nofollow, noimageindex" name="robots" /> +<meta content="width=device-width, initial-scale=1" name="viewport" /> +<script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.EDISON_METRICS_JS_EXECUTION_START = performance.now(); +</script><title>Dropbox - Error - Simplify your life</title> +<link rel="shortcut icon" href="https://cfl.dropboxstatic.com/static/metaserver/static/images/favicon.ico"/> +<script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.CSP_SCRIPT_NONCE = "AneY6l0rmcrTspXW3Ml/lWjNg/M="</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">(()=>{"use strict";const e=window;let a;const r=()=>{a=[],e.addRequireLoadCallback=e=>a.push(e),e.configureRequire=function(){const a=arguments;e.addRequireLoadCallback(()=>e.configureRequire.apply(null,a))},e.define=function(){const a=arguments;e.addRequireLoadCallback(()=>e.define.apply(null,a))},e.preLoadFile=(...a)=>{e.addRequireLoadCallback(()=>e.preLoadFile.apply(null,a))}};r(),e._insertRequireShim=r,e.InitRequireJs=r=>{e.requireContexts={},e.performance&&null!=e.performance.now&&(requirejs.onResourceLoad=(a,r,i)=>{const l=e.performance.now(),n=e.requireContexts[a.id];if(n){r.id in n.module_callback_times||(n.module_callback_times[r.id]={});const e=n.module_callback_times[r.id];e.loadTime=l,r.url&&(e.url=r.url),r.id&&(e.name=r.id),r.parentMap&&r.parentMap.url&&(e.parent=r.parentMap.url)}}),e.configureRequire=r,e.addRequireLoadCallback=e=>e(),a.forEach(e=>e())}})(); + +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">(function () { + var start = performance.now(); + window.addRequireLoadCallback(function() { + window.EDISON_METRICS_REQUIRE_LOAD_CALLBACK_TIME = performance.now() - start; + }); +})(); +</script><script nonce="qt/Rb6UUlrEW14eg1QL1RVaJaME=" src="https://cfl.dropboxstatic.com/static/metaserver/static/js/alameda_bundle/alameda_bundle_ie_en-vflXFwp8G.js" crossorigin="anonymous"></script> +</head><body><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.RUNNING_IN_EDISON = true; +var requireConfig = {"baseUrl": "https://cfl.dropboxstatic.com/", "waitSeconds": 30, "paths": {"atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c__commonjsHelpers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c__commonjsHelpers-vfllnoP_U", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_abuse_fingerprintjs_component": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_abuse_fingerprintjs_component-vflzZLLoa", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_abuse_funcaptcha_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_abuse_funcaptcha_modal-vflK7C5yq", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_accessibility_audit": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_accessibility_audit-vflDB77Rq", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_accessibility_ax_audit": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_accessibility_ax_audit-vfl-TBEcL", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_account_email": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_account_email-vflILGR0P", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_account_timezone_detection": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_account_timezone_detection-vfl5pa9ua", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_activation_data_slices": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_activation_data_slices-vflH5KQqm", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_activation_data_store": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_activation_data_store-vflXwtbc-", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_admin_tasks_dropdown_in_progress_admin_tasks": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_admin_tasks_dropdown_in_progress_admin_tasks-vfloyEogZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_adyen-checkout": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_adyen-checkout-vflm8avJe", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_adyen-web_dist_adyen": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_adyen-web_dist_adyen-vfldQm_Gq", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_apex-metrics_src_types": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_apex-metrics_src_types-vflRK2vZU", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_api_v2_default_team_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_api_v2_default_team_client-vfltVfvuC", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_api_v2_routes_domain_contacts_provider": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_api_v2_routes_domain_contacts_provider-vfltgbUI4", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_assets_pictogram_lightbulb": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_assets_pictogram_lightbulb-vflTULxD5", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_assets_pictogram_warning": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_assets_pictogram_warning-vflGUBZH3", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_auth_login_or_register_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_auth_login_or_register_modal-vflTSbH-Z", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_auth_login_or_register_types": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_auth_login_or_register_types-vflwwH5oK", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_banner_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_banner_index-vflkPzOQt", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_bem": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_bem-vflSgJN94", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browse_uri_helper": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browse_uri_helper-vflKHIQg4", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browse_uri_interface": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browse_uri_interface-vfld8tSDv", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browser_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browser_index-vfl_G2Bx_", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_action_choice_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_action_choice_modal-vfl2XnZd8", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_banner_campaign_banner": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_banner_campaign_banner-vflRe6nRy", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_billing_modal_campaign_billing_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_billing_modal_campaign_billing_modal-vflpRNrP0", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_dialog_campaign_dialog": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_dialog_campaign_dialog-vflsA-LlH", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_bubble_campaign_link_bubble": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_bubble_campaign_link_bubble-vflJxsg9R", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_campaign_link": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_campaign_link-vflBnOghp", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_campaign_link_renderer": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_campaign_link_renderer-vflDxpGts", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_menu_campaign_menu_item": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_menu_campaign_menu_item-vflFtePgV", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_modal_campaign_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_modal_campaign_modal-vflGs568w", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_pulsar_campaign_pulsar": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_pulsar_campaign_pulsar-vfl5e_QSu", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_snackbar_campaign_snackbar": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_snackbar_campaign_snackbar-vfl1SvGvl", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_tooltip_campaign_tooltip": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_tooltip_campaign_tooltip-vflypBa1E", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_action_defs_api": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_action_defs_api-vfll7ppR7", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaign_uri_param": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaign_uri_param-vfleQ9pvD", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaigns_element_id_enum": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaigns_element_id_enum-vflW3pU6B", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaigns_toolkit_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaigns_toolkit_client-vflsszjsn", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_hooks_logging": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_hooks_logging-vflMo_8mZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_chat_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_chat_client-vflG6sUHo", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_dialogue": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_dialogue-vflSaZZ79", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_dialogue_logging": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_dialogue_logging-vflTnkUbd", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chip_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chip_index-vfl2Jtmje", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_combinations_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_combinations_index-vflP7BeXi", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_components_dwg-tooltip_control": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_components_dwg-tooltip_control-vflbMLz4X", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_components_order_summary_redesign_order_summary_utils": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_components_order_summary_redesign_order_summary_utils-vfla9kPPQ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_contacts_types": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_contacts_types-vflUPnnuG", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_controls_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_controls_index-vflsW1F5J", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_attribution_header": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_attribution_header-vflZPsXEt", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_exception_info": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_exception_info-vflUROgBu", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_i18n": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_i18n-vflSDWhD-", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_notify": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_notify-vflhfHTHw", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_toast_toast_on_init": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_toast_toast_on_init-vflc6Kq_l", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_transport_query_string_helpers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_transport_query_string_helpers-vflphrWge", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_xhr": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_xhr-vflCcDVOv", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_csrf": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_csrf-vflYURPxp", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_checkout_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_checkout_modal-vflKjWdYd", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_lmo_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_lmo_modal-vflz0cj_a", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_mid_trial_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_mid_trial_modal-vflYUWddC", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_onboarding_survey_modal_campaign_onboarding_survey_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_onboarding_survey_modal_campaign_onboarding_survey_modal-vflC930AA", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_dev_notifier_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_dev_notifier_client-vflb95px-", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_launcher_launcher_item": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_launcher_launcher_item-vflfOwzZT", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_launcher_launcher_sandbox": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_launcher_launcher_sandbox-vfl1jPA7h", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_panels": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_panels-vflzCGRuO", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_dialogue_actions_chat_actions": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_dialogue_actions_chat_actions-vfltOv9zJ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_dialogue_reducers_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_dialogue_reducers_index-vflEURdEn", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_edison_cookies_check": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_edison_cookies_check-vflssKe5D", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_edison_ui_react_router_compat": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_edison_ui_react_router_compat-vfl10ZjlS", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_elliptic_lib_elliptic": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_elliptic_lib_elliptic-vflbt-Idu", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_em_string": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_em_string-vflr-GBLg", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_esm_useResizeObserver": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_esm_useResizeObserver-vflZKuaNG", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_file_imports_ui_entry": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_file_imports_ui_entry-vflsjojYo", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_fingerprintjs-pro-static_dist_fp": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_fingerprintjs-pro-static_dist_fp-vflWzBQ6s", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_form_row_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_form_row_index-vflWKbE7W", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth-components_plan-comparison-modal_plan_comparison_modal_contents": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth-components_plan-comparison-modal_plan_comparison_modal_contents-vflOjRV9H", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth-components_quota-bar_quota_bar": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth-components_quota-bar_quota_bar-vfl5C_To7", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth_trials_api_v2": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth_trials_api_v2-vfl1Qlags", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_helpers_esm_extends": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_helpers_esm_extends-vflk9wiuf", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_helpers_hooks_component-did-mount": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_helpers_hooks_component-did-mount-vflybgC_I", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_hooks_use_screen_size": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_hooks_use_screen_size-vflVXptS5", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_init_data_edison": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_init_data_edison-vflQn2hgW", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_invite_nav_invite_button_invite_button": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_invite_nav_invite_button_invite_button-vflR3IOAW", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_learning_center": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_learning_center-vfl4AL39e", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_learning_center2": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_learning_center2-vflabOiS9", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_list_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_list_index-vfl-CX5nU", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_lodash-es_lodash": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_lodash-es_lodash-vflOJ76WI", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_lottie-react_build_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_lottie-react_build_index-vflHxPNUl", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_assets_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_assets_index-vflk4pr4Y", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_index-vflZkRkCf", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_pictogram_icon": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_pictogram_icon-vfl79RS2X", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_shelf-empty": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_shelf-empty-vflmVLvSJ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_star-stickers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_star-stickers-vflhv6pi3", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_traffic-duck-crossing": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_traffic-duck-crossing-vflrcHPYD", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_traffic-road-blocked": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_traffic-road-blocked-vflFWABVl", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_trash-empty": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_trash-empty-vfl2PKw-O", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_modal_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_modal_index-vflBI4oiM", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ncct_manual_assist_util": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ncct_manual_assist_util-vflnx3hwy", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_payments_skus_subscription_service": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_payments_skus_subscription_service-vflWuwJ6x", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_performance-bookmarklet": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_performance-bookmarklet-vfllvBlJR", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_photo_upload_controller": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_photo_upload_controller-vflxpE8ZS", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_pkijs_build_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_pkijs_build_index-vflCJK0Gn", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_privacy_consent_load_privacy_consent": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_privacy_consent_load_privacy_consent-vfl2xmSlQ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_profile_services_profile_services_constants": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_profile_services_profile_services_constants-vfl6UuiKD", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_profile_services_profile_services_link": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_profile_services_profile_services_link-vflgEQ_m7", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_prompt_ui_home_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_prompt_ui_home_modal-vflnO7p3g", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_pvtsutils_build_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_pvtsutils_build_index-vflMf9vHp", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react-dom-next_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react-dom-next_client-vflHpoegk", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react-is_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react-is_index-vflRE116H", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react_query_api_helpers_helpers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react_query_api_helpers_helpers-vflMcF9xk", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react_query_helpers_helpers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react_query_helpers_helpers-vfl6e6Mlc", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_redux_unsupported": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_redux_unsupported-vfl6IRrTX", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_rfc4648_lib_rfc4648": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_rfc4648_lib_rfc4648-vfl6x26tb", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_crypto": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_crypto-vfld_nxWG", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_legacy_edge_shim": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_legacy_edge_shim-vflWoj9F4", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_passwords": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_passwords-vflAYFjYz", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_util": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_util-vfl0R6-29", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_server_side_client_view_bridge": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_server_side_client_view_bridge-vfljr-Lbf", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_sharing_api_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_sharing_api_client-vflA0vXAY", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_signup_signin_helpers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_signup_signin_helpers-vflR4ofYC", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_button": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_button-vflbl__lW", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_checkbox": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_checkbox-vfllSICkU", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_popover_popover_trigger": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_popover_popover_trigger-vfl573k3i", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_common_constants": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_common_constants-vflYpH7jL", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_query_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_query_client-vflHQ8_Ke", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_sink_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_sink_index-vflkFkPYe", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_styled-components": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_styled-components-vflhixqjF", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_teams_idle_timeout_pagelet": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_teams_idle_timeout_pagelet-vflGWBzUx", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_teams_team_creation_free_team_create_button": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_teams_team_creation_free_team_create_button-vflM4eE-E", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_toolkit_dist_redux-toolkit": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_toolkit_dist_redux-toolkit-vflrT4xxl", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_truncate_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_truncate_index-vflEUk4R2", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_fill_checkmark-circle": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_fill_checkmark-circle-vflIsqCOt", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_fill_fail": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_fill_fail-vflE34k63", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_calendar": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_calendar-vflBKIbWs", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_checkmark-circle": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_checkmark-circle-vflm0XeuC", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_comment": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_comment-vflDUhTez", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_dropbox": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_dropbox-vflCJ86lo", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_folder": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_folder-vflCAym72", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_link": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_link-vflOMA3xx", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_more-horizontal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_more-horizontal-vflY7ites", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_passwords": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_passwords-vflgE7dCA", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_pdf": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_pdf-vflG-8hrL", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_phone-support": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_phone-support-vflRABWw9", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_shield": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_shield-vflwzjTRW", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_show": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_show-vfluvLUI2", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_signature": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_signature-vflGfCdc6", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_space": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_space-vflMCoFuC", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_star": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_star-vfl50A3nL", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_syncing": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_syncing-vfl3UtdCt", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_twinkle-1": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_twinkle-1-vflkOx463", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_twinkle-2": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_twinkle-2-vflEASq4-", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upgrade": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upgrade-vfldBme3P", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upload": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upload-vfllEXd6f", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upload-file": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upload-file-vfl0fTpta", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_contact_sales_button_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_contact_sales_button_index-vflIPfVQ2", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_image": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_image-vflJC1030", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_input_dig": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_input_dig-vfl5OUcAZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_locale_selector_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_locale_selector_modal-vflNqziWZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_modal_dig": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_modal_dig-vfl11cKpZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_overlay": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_overlay-vflHzSaP5", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_sprite": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_sprite-vflNK4XSO", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_trials_types": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_trials_types-vfl2ZJBmG", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_use-sync-external-store_shim_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_use-sync-external-store_shim_index-vflH_PMqU", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_dropdown_bluenote_row": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_dropdown_bluenote_row-vflZix-r8", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_group_actions": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_group_actions-vflulEplj", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_sharing_actions": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_sharing_actions-vflgXGCu2", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ux_analytics_styles_devtools": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ux_analytics_styles_devtools-vflsHFAjm", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ux_analytics_ux_variants": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ux_analytics_ux_variants-vflrOeCUV", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_uxa_pagelet": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_uxa_pagelet-vfl7IPGM9", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_zxcvbn_lib_main": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_zxcvbn_lib_main-vflMo_kar", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception-vfl3MW8JA", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception_reporter": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception_reporter-vflHWmykm", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_data_modules_stormcrow": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_data_modules_stormcrow-vflyE-JQZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison-vflTYFpvH", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_edison_react_page": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_edison_react_page-vfld2O7LI", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_error_pages_generic_error": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_error_pages_generic_error-vfl_VAFXn", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_init_edison_page": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_init_edison_page-vfl0279Fr", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-vflYWmbcM", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom-vflI7_n6Z", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom-next": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom-next-vflZBQXkh", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-next": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-next-vfl2G3Nv-", "json_loader!metaserver/static/js/langpack/icu-da_DK.json": "static/metaserver/static/js/langpack/icu-da_DK-vflz5Aofy.json", "json_loader!metaserver/static/js/langpack/icu-de.json": "static/metaserver/static/js/langpack/icu-de-vflnZDWu5.json", "json_loader!metaserver/static/js/langpack/icu-en.json": "static/metaserver/static/js/langpack/icu-en-vflmZFLky.json", "json_loader!metaserver/static/js/langpack/icu-en_GB.json": "static/metaserver/static/js/langpack/icu-en_GB-vfltLIjhc.json", "json_loader!metaserver/static/js/langpack/icu-es.json": "static/metaserver/static/js/langpack/icu-es-vfliQeUel.json", "json_loader!metaserver/static/js/langpack/icu-es_ES.json": "static/metaserver/static/js/langpack/icu-es_ES-vflgUwS5J.json", "json_loader!metaserver/static/js/langpack/icu-fr.json": "static/metaserver/static/js/langpack/icu-fr-vfl1LwDrl.json", "json_loader!metaserver/static/js/langpack/icu-fr_CA.json": "static/metaserver/static/js/langpack/icu-fr_CA-vflijstqJ.json", "json_loader!metaserver/static/js/langpack/icu-id.json": "static/metaserver/static/js/langpack/icu-id-vflxf4Zlf.json", "json_loader!metaserver/static/js/langpack/icu-it.json": "static/metaserver/static/js/langpack/icu-it-vflyd3m9_.json", "json_loader!metaserver/static/js/langpack/icu-ja.json": "static/metaserver/static/js/langpack/icu-ja-vfl6JKIwA.json", "json_loader!metaserver/static/js/langpack/icu-ko.json": "static/metaserver/static/js/langpack/icu-ko-vfliqi4JH.json", "json_loader!metaserver/static/js/langpack/icu-ms.json": "static/metaserver/static/js/langpack/icu-ms-vflfrDaqK.json", "json_loader!metaserver/static/js/langpack/icu-nb_NO.json": "static/metaserver/static/js/langpack/icu-nb_NO-vfloF6-xZ.json", "json_loader!metaserver/static/js/langpack/icu-nl_NL.json": "static/metaserver/static/js/langpack/icu-nl_NL-vflV2Y9za.json", "json_loader!metaserver/static/js/langpack/icu-pl.json": "static/metaserver/static/js/langpack/icu-pl-vflO3u_H-.json", "json_loader!metaserver/static/js/langpack/icu-pt_BR.json": "static/metaserver/static/js/langpack/icu-pt_BR-vflZx9YUt.json", "json_loader!metaserver/static/js/langpack/icu-ru.json": "static/metaserver/static/js/langpack/icu-ru-vfl1TbeBp.json", "json_loader!metaserver/static/js/langpack/icu-sv_SE.json": "static/metaserver/static/js/langpack/icu-sv_SE-vflq-z-Fs.json", "json_loader!metaserver/static/js/langpack/icu-th_TH.json": "static/metaserver/static/js/langpack/icu-th_TH-vflfbH6k9.json", "json_loader!metaserver/static/js/langpack/icu-uk_UA.json": "static/metaserver/static/js/langpack/icu-uk_UA-vflj-DvNQ.json", "json_loader!metaserver/static/js/langpack/icu-xx_AC.json": "static/metaserver/static/js/langpack/icu-xx_AC-vflST8SVY.json", "json_loader!metaserver/static/js/langpack/icu-xx_AE.json": "static/metaserver/static/js/langpack/icu-xx_AE-vflVwdr3j.json", "json_loader!metaserver/static/js/langpack/icu-xx_HA.json": "static/metaserver/static/js/langpack/icu-xx_HA-vflYiD2Dq.json", "json_loader!metaserver/static/js/langpack/icu-xx_LS.json": "static/metaserver/static/js/langpack/icu-xx_LS-vflqEK5lE.json", "json_loader!metaserver/static/js/langpack/icu-xx_RL.json": "static/metaserver/static/js/langpack/icu-xx_RL-vfl3pGz8C.json", "json_loader!metaserver/static/js/langpack/icu-zh_CN.json": "static/metaserver/static/js/langpack/icu-zh_CN-vflDIaxPh.json", "json_loader!metaserver/static/js/langpack/icu-zh_TW.json": "static/metaserver/static/js/langpack/icu-zh_TW-vflf1_VlL.json"}, "bundles": {}, "map": {"*": {"metaserver/static/js/langpack": "json_loader!metaserver/static/js/langpack/icu-en.json", "metaserver/static/js/file_viewer/edison/error_pages/generic_error": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_error_pages_generic_error", "metaserver/static/js/core/exception": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception", "metaserver/static/js/core/exception_reporter": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception_reporter", "js/edison/edison": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison", "js/data_modules/stormcrow": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_data_modules_stormcrow", "metaserver/static/js/edison/init_edison_page": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_init_edison_page", "js/edison/edison_react_page": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_edison_react_page", "react": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react", "react-dom": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom", "react-next": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-next", "react-dom-next": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom-next", "metaserver/static/js/modules/constants/contacts": "data_module!metaserver/static/js/modules/constants/contacts", "metaserver/static/js/modules/constants/fingerprintjs_constants": "data_module!metaserver/static/js/modules/constants/fingerprintjs_constants", "metaserver/static/js/modules/constants/locales": "data_module!metaserver/static/js/modules/constants/locales", "metaserver/static/js/modules/constants/login_and_register": "data_module!metaserver/static/js/modules/constants/login_and_register", "metaserver/static/js/modules/constants/search": "data_module!metaserver/static/js/modules/constants/search", "metaserver/static/js/modules/constants/sharing": "data_module!metaserver/static/js/modules/constants/sharing", "metaserver/static/js/modules/constants/time": "data_module!metaserver/static/js/modules/constants/time", "metaserver/static/js/modules/constants/viewer": "data_module!metaserver/static/js/modules/constants/viewer", "metaserver/static/js/modules/constants/web_experience_constants": "data_module!metaserver/static/js/modules/constants/web_experience_constants"}, "metaserver/static/js/core/exception_info": {"metaserver/static/js/langpack": "json_loader!metaserver/static/js/langpack/icu-en.json", "metaserver/static/js/file_viewer/edison/error_pages/generic_error": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_error_pages_generic_error", "metaserver/static/js/core/exception": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception", "metaserver/static/js/core/exception_reporter": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception_reporter", "js/edison/edison": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison", "js/data_modules/stormcrow": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_data_modules_stormcrow", "metaserver/static/js/edison/init_edison_page": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_init_edison_page", "js/edison/edison_react_page": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_edison_react_page", "react": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react", "react-dom": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom", "react-next": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-next", "react-dom-next": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom-next", "metaserver/static/js/modules/constants/contacts": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/contacts", "metaserver/static/js/modules/constants/fingerprintjs_constants": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/fingerprintjs_constants", "metaserver/static/js/modules/constants/locales": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/locales", "metaserver/static/js/modules/constants/login_and_register": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/login_and_register", "metaserver/static/js/modules/constants/search": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/search", "metaserver/static/js/modules/constants/sharing": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/sharing", "metaserver/static/js/modules/constants/time": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/time", "metaserver/static/js/modules/constants/viewer": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/viewer", "metaserver/static/js/modules/constants/web_experience_constants": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/web_experience_constants"}}, "shim": {}, "nodeIdCompat": true}; +window.addRequireLoadCallback(function() { + window.configureRequire(requireConfig, { + sentryOptions: {"dsn":"https://015d5ce7dd3142cd8fca094a50adbf69@d.dropbox.com/4505546831036416","release":"978f2b900a8e41d9ac01c7d87480d86d2bbb4cf3","environment":"canary","tags":{"edison_page_name":"shared_link_generic_error","browser_id":"5763630696314505067488660972944034910"}}, + requireFallbackBaseUrl: "https://www.dropboxstatic.com/", + langpack: {locale: "en"}, + useReactNext: false , + exceptionExtras: {"page_repo_rev":"978f2b900a8e41d9ac01c7d87480d86d2bbb4cf3","yaps_deployment":"canary","yaps_project":"edison_atlasservlet.file_viewer-edison","page_locale":"en","page_load_timestamp":1711501606}, + exceptionTags: ["is_edison","browser-id:5763630696314505067488660972944034910","edison_page_name:shared_link_generic_error","edison_atlasservlet:file_viewer","edison_atlasservlet:file_viewer:canary"], + initDataBase64: "EiBmMmJhZDQxOTE5MzY0MGQwODQxN2M0NmJkMTM4NzBhORim4o2wBiJxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTA6SQolNTc2MzYzMDY5NjMxNDUwNTA2NzQ4ODY2MDk3Mjk0NDAzNDkxMBIgMDQ1NjA4ZWVkYWYyZGRhMDZhNzlhMDhmOGViOTBjNWVCJmVkaXNvbl9hdGxhc3NlcnZsZXQuZmlsZV92aWV3ZXItZWRpc29uSgZjYW5hcnlSGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3JaAmVuYig5NzhmMmI5MDBhOGU0MWQ5YWMwMWM3ZDg3NDgwZDg2ZDJiYmI0Y2YzalIKIXgtZHJvcGJveC1jbGllbnQteWFwcy1hdHRyaWJ1dGlvbhItZWRpc29uX2F0bGFzc2VydmxldC5maWxlX3ZpZXdlci1lZGlzb246Y2FuYXJ5cgQKABIAehNzaGFyZWRfY29udGVudF9saW5rggEoc2hhcmVkX2NvbnRlbnRfbGlua192aWV3X2ZpbGVfYW5kX2ZvbGRlcg==" + }, []); + var start = performance.now(); + window.require(["metaserver/static/js/edison/init_edison_page"], function(mod) { + window.EDISON_METRICS_INIT_PAGE_MODULE_LOAD_TIME = performance.now() - start; + mod.initPage("EgtmaWxlX3ZpZXdlchoZc2hhcmVkX2xpbmtfZ2VuZXJpY19lcnJvcjI1L3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3pKE3NoYXJlZF9jb250ZW50X2xpbmtSKHNoYXJlZF9jb250ZW50X2xpbmtfdmlld19maWxlX2FuZF9mb2xkZXJiKDk3OGYyYjkwMGE4ZTQxZDlhYzAxYzdkODc0ODBkODZkMmJiYjRjZjNqKDQ2Nzc0ZWMzYTViYjIwZjA3NGM0MTRiZDhmYzkyOWM2ZDllNDhkMTNwAXoGY2FuYXJ5sgEJL2R3czIvcnBjygFBbWV0YXNlcnZlci9zdGF0aWMvanMvZmlsZV92aWV3ZXIvZWRpc29uL2Vycm9yX3BhZ2VzL2dlbmVyaWNfZXJyb3LiAXFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MPABAYgCAZACAbICIDA0NTYwOGVlZGFmMmRkYTA2YTc5YTA4ZjhlYjkwYzVl"); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + + window.require( + ["js/edison/edison", "js/edison/edison_react_page", "metaserver/static/js/file_viewer/edison/error_pages/generic_error"], + function(edisonModule, edisonReactPageModule, mod) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonReactPageModule.render(mod, false , "", false ); + }); + } + ); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + if (edisonModule.Edison.markServerSidePrefetchStarted) { + edisonModule.Edison.markServerSidePrefetchStarted(["Es4CCiN3ZWJfcGxhdGZvcm0uV2ViUGxhdGZvcm1FZGlzb25GZXRjaBITRWRpc29uRGV2VG9vbHNGZXRjaBrpARLmAVJxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTBacWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wKgtmaWxlX3ZpZXdlcjIZc2hhcmVkX2xpbmtfZ2VuZXJpY19lcnJvcg==","Es8CCixzdXBlcl9hZG1pbl9hbmRfZGVwbG95bWVudC5FZGlzb25JZGxlVGltZW91dBILSWRsZVRpbWVvdXQa6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=","Eu0CCjpwcml2YWN5X2NvbnNlbnRfZWRpc29uLlByaXZhY3lDb25zZW50RWRpc29uUHJlZmV0Y2hTZXJ2aWNlEhtQcml2YWN5Q29uc2VudFByb3BzUHJlZmV0Y2ga6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=","Es0CCiN3ZWJfcGxhdGZvcm0uV2ViUGxhdGZvcm1FZGlzb25GZXRjaBISRWRpc29uVG9wTWVudUZldGNoGukBEuYBUnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MFpxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTAqC2ZpbGVfdmlld2VyMhlzaGFyZWRfbGlua19nZW5lcmljX2Vycm9y","EtgCCit1c2VyX3N1cnZleS5FZGlzb25Vc2VyU3VydmV5UHJlZmV0Y2hTZXJ2aWNlEhVFZGlzb25Vc2VyU3VydmV5RmV0Y2ga6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=","Es4CCiZ1eF9hbmFseXRpY3MuVXhBbmFseXRpY3NFZGlzb25TZXJ2aWNlchIQVXhBbmFseXRpY3NGZXRjaBrpARLmAVJxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTBacWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wKgtmaWxlX3ZpZXdlcjIZc2hhcmVkX2xpbmtfZ2VuZXJpY19lcnJvcg=="]); + } + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/time", "json", "{\"DATETIME_FORMAT\": \"M/d/yyyy h:mm a\", \"TIMEZONE_OFFSET\": 0, \"TIMEZONE\": \"\", \"DATE_FORMAT\": \"M/d/yyyy\", \"TIME_FORMAT\": \"h:mm a\"}"); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/viewer", "json", "{\"DEFAULT_ROOT_NAME\": \"Dropbox\", \"PERSONAL_ROLE_STRING\": \"Personal\", \"_viewer_properties\": {\"_user_data\": [], \"is_team_assume_user_session\": false, \"is_assume_user_session\": false}, \"prompt_ha_hiding\": true, \"LOCALE\": \"US\"}"); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/locales", "json", "{\"LIST_OF_LOCALES_WITH_INTERNAL\": [{\"localeCode\": \"id\", \"localeName\": \"Bahasa Indonesia\", \"decorator\": \"\"}, {\"localeCode\": \"ms\", \"localeName\": \"Bahasa Malaysia\", \"decorator\": \"\"}, {\"localeCode\": \"da_DK\", \"localeName\": \"Dansk\", \"decorator\": \"\"}, {\"localeCode\": \"de\", \"localeName\": \"Deutsch\", \"decorator\": \"\"}, {\"localeCode\": \"en_GB\", \"localeName\": \"English (United Kingdom)\", \"decorator\": \"\"}, {\"localeCode\": \"en\", \"localeName\": \"English (United States)\", \"decorator\": \"\"}, {\"localeCode\": \"es_ES\", \"localeName\": \"Espa\\u00f1ol (Espa\\u00f1a)\", \"decorator\": \"\"}, {\"localeCode\": \"es\", \"localeName\": \"Espa\\u00f1ol (Latinoam\\u00e9rica)\", \"decorator\": \"\"}, {\"localeCode\": \"fr_CA\", \"localeName\": \"Fran\\u00e7ais (Canada)\", \"decorator\": \"\"}, {\"localeCode\": \"fr\", \"localeName\": \"Fran\\u00e7ais (France)\", \"decorator\": \"\"}, {\"localeCode\": \"it\", \"localeName\": \"Italiano\", \"decorator\": \"\"}, {\"localeCode\": \"nl_NL\", \"localeName\": \"Nederlands\", \"decorator\": \"\"}, {\"localeCode\": \"nb_NO\", \"localeName\": \"Norsk (bokm\\u00e5l)\", \"decorator\": \"\"}, {\"localeCode\": \"pl\", \"localeName\": \"Polski\", \"decorator\": \"\"}, {\"localeCode\": \"pt_BR\", \"localeName\": \"Portugu\\u00eas (Brasil)\", \"decorator\": \"\"}, {\"localeCode\": \"ru\", \"localeName\": \"P\\u0443\\u0441\\u0441\\u043a\\u0438\\u0439\", \"decorator\": \"\"}, {\"localeCode\": \"sv_SE\", \"localeName\": \"Svenska\", \"decorator\": \"\"}, {\"localeCode\": \"uk_UA\", \"localeName\": \"\\u0423\\u043a\\u0440\\u0430\\u0457\\u043d\\u0441\\u044c\\u043a\\u0430\", \"decorator\": \"\"}, {\"localeCode\": \"th_TH\", \"localeName\": \"\\u0e44\\u0e17\\u0e22\", \"decorator\": \"\"}, {\"localeCode\": \"zh_CN\", \"localeName\": \"\\u4e2d\\u6587\\uff08\\u7b80\\u4f53\\uff09\", \"decorator\": \"\"}, {\"localeCode\": \"zh_TW\", \"localeName\": \"\\u4e2d\\u6587\\uff08\\u7e41\\u9ad4\\uff09\", \"decorator\": \"\"}, {\"localeCode\": \"ja\", \"localeName\": \"\\u65e5\\u672c\\u8a9e\", \"decorator\": \"\"}, {\"localeCode\": \"ko\", \"localeName\": \"\\ud55c\\uad6d\\uc5b4\", \"decorator\": \"\"}], \"LIST_OF_LOCALES_WITHOUT_INTERNAL\": [{\"localeCode\": \"id\", \"localeName\": \"Bahasa Indonesia\", \"decorator\": \"\"}, {\"localeCode\": \"ms\", \"localeName\": \"Bahasa Malaysia\", \"decorator\": \"\"}, {\"localeCode\": \"da_DK\", \"localeName\": \"Dansk\", \"decorator\": \"\"}, {\"localeCode\": \"de\", \"localeName\": \"Deutsch\", \"decorator\": \"\"}, {\"localeCode\": \"en_GB\", \"localeName\": \"English (United Kingdom)\", \"decorator\": \"\"}, {\"localeCode\": \"en\", \"localeName\": \"English (United States)\", \"decorator\": \"\"}, {\"localeCode\": \"es_ES\", \"localeName\": \"Espa\\u00f1ol (Espa\\u00f1a)\", \"decorator\": \"\"}, {\"localeCode\": \"es\", \"localeName\": \"Espa\\u00f1ol (Latinoam\\u00e9rica)\", \"decorator\": \"\"}, {\"localeCode\": \"fr_CA\", \"localeName\": \"Fran\\u00e7ais (Canada)\", \"decorator\": \"\"}, {\"localeCode\": \"fr\", \"localeName\": \"Fran\\u00e7ais (France)\", \"decorator\": \"\"}, {\"localeCode\": \"it\", \"localeName\": \"Italiano\", \"decorator\": \"\"}, {\"localeCode\": \"nl_NL\", \"localeName\": \"Nederlands\", \"decorator\": \"\"}, {\"localeCode\": \"nb_NO\", \"localeName\": \"Norsk (bokm\\u00e5l)\", \"decorator\": \"\"}, {\"localeCode\": \"pl\", \"localeName\": \"Polski\", \"decorator\": \"\"}, {\"localeCode\": \"pt_BR\", \"localeName\": \"Portugu\\u00eas (Brasil)\", \"decorator\": \"\"}, {\"localeCode\": \"ru\", \"localeName\": \"P\\u0443\\u0441\\u0441\\u043a\\u0438\\u0439\", \"decorator\": \"\"}, {\"localeCode\": \"sv_SE\", \"localeName\": \"Svenska\", \"decorator\": \"\"}, {\"localeCode\": \"uk_UA\", \"localeName\": \"\\u0423\\u043a\\u0440\\u0430\\u0457\\u043d\\u0441\\u044c\\u043a\\u0430\", \"decorator\": \"\"}, {\"localeCode\": \"th_TH\", \"localeName\": \"\\u0e44\\u0e17\\u0e22\", \"decorator\": \"\"}, {\"localeCode\": \"zh_CN\", \"localeName\": \"\\u4e2d\\u6587\\uff08\\u7b80\\u4f53\\uff09\", \"decorator\": \"\"}, {\"localeCode\": \"zh_TW\", \"localeName\": \"\\u4e2d\\u6587\\uff08\\u7e41\\u9ad4\\uff09\", \"decorator\": \"\"}, {\"localeCode\": \"ja\", \"localeName\": \"\\u65e5\\u672c\\u8a9e\", \"decorator\": \"\"}, {\"localeCode\": \"ko\", \"localeName\": \"\\ud55c\\uad6d\\uc5b4\", \"decorator\": \"\"}], \"FR_CA_LOCALE_ENABLED\": true}"); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/search", "json", "{\"SEARCH_WEB_MAIN_KIEV_ENABLED\": false, \"SEARCH_WEB_MAIN2_KIEV_ENABLED\": false, \"SEARCH_EXPERIMENT_ZERO_STATE_DROPDOWN_VARIANT\": \"OFF\", \"SEARCH_WEB_REDESIGN_2023_VARIANT\": \"OFF\", \"SEARCH_ALPHA_NATURAL_LANGUAGE_SEARCH_VARIANT\": \"OFF\", \"SEARCH_WEB_AI_CONTROL_CENTER_VARIANT\": \"OFF\", \"SEARCH_WEB_AI_EARLY_ADOPTER_ENABLED\": false, \"HTTP3_SUPPORT_ENABLED\": false}"); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedPrefetch("Es8CCixzdXBlcl9hZG1pbl9hbmRfZGVwbG95bWVudC5FZGlzb25JZGxlVGltZW91dBILSWRsZVRpbWVvdXQa6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=", "", false ); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedPrefetch("Es4CCiZ1eF9hbmFseXRpY3MuVXhBbmFseXRpY3NFZGlzb25TZXJ2aWNlchIQVXhBbmFseXRpY3NGZXRjaBrpARLmAVJxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTBacWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wKgtmaWxlX3ZpZXdlcjIZc2hhcmVkX2xpbmtfZ2VuZXJpY19lcnJvcg==", "CAESpSh7InJlcXVlc3RJZCI6ICJmMmJhZDQxOTE5MzY0MGQwODQxN2M0NmJkMTM4NzBhOSIsICJvcmdSZWZlcnJlciI6ICIiLCAiaHR0cFJlZmVycmVyIjogIiIsICJwcmV2aW91c1VybCI6ICIiLCAidmlzaXRJZCI6ICIiLCAiZXZlbnRfbmFtZXMiOiBbImdvb2dsZV9sb2dpbl9zdGFydCIsICJ0bF9wYWdlX3ZpZXciLCAiZW1haWxfc2lnbnVwX3N1Y2NlZWRlZCIsICJkb2N1bWVudF9vcGVuIiwgInByb2R1Y3QiLCAiY2xpY2tfc291cmNlIiwgImZpbmFsX2hlYXJ0YmVhdCIsICJtb2RhbF9jbG9zZSIsICJzaWFfbG9naW5fcmVxdWlyZXNfdHdvX2ZhY3RvciIsICJhZG1pbl9ob21lX2NsaWVudF9iYW5uZXJfY2xpY2tlZCIsICJhcHBfbmFtZSIsICJlbWFpbF9sb2dpbl9mYWlsZWQiLCAicGFyZW50X3Byb2R1Y3QiLCAic2lhX2xvZ2luX3N0YXJ0IiwgInV4YV9kZWJ1Z192ZXJzaW9uIiwgImRvY3VtZW50X2Nsb3NlIiwgImRyb3Bib3hfZG93bmxvYWQiLCAidG90YWxfdGltZSIsICJsb2dpbl9tb2RhbF9kaXNtaXNzZWQiLCAiZ29vZ2xlX2xvZ2luX2ZhaWxlZCIsICJzY3JpcHRfaWQiLCAiYmZjYWNoZV9lbGlnaWJsZSIsICJwdXJjaGFzZV9wcmljZSIsICJzaWdudXBfbW9kYWxfZGlzbWlzc2VkIiwgImhzX2FjdGlvbiIsICJnb29nbGVfbG9naW5fc3VjY2VlZGVkIiwgImVtYWlsX2xvZ2luX3JlZGlyZWN0IiwgImVtYWlsX3NwbGl0X3NpZ251cF9jb250aW51ZSIsICJoc19jYXRlZ29yeSIsICJiaWxsaW5nX2N5Y2xlIiwgImxpbmtfbm9fc2Vzc2lvbl9zdG9yYWdlIiwgImdvb2dsZV9zaWdudXBfc3RhcnQiLCAiYWRvYmVfdGFyZ2V0X3ZhcmlhbnRzIiwgImVsZW1lbnRfY2xpY2siLCAibGlua19jbGljayIsICJjbGlja190b29sdGlwX3NpZ25pbl9lcCIsICJkaWFsb2dfb3BlbiIsICJzaWFfbG9naW5fc3VjY2VlZGVkIiwgInNpZ251cF9tb2RhbF9zaG93biIsICJ1eGFfZXZlbnRfY2xhc3NpZmljYXRpb25fbGV2ZWwiLCAiZW1haWxfc2lnbnVwX2ZhaWxlZCIsICJmb3JtX2ZpZWxkX2NoYW5nZSIsICJhZG1pbl9ob21lX2NsaWVudF9iYW5uZXJfc2hvd24iLCAiZHJvcGJveF9yZXN0YXJ0X2Rvd25sb2FkIiwgIm1vZGFsX29wZW4iLCAiZ29vZ2xlX3NpZ251cF9mYWlsZWQiLCAicGFnZV92aWV3X29yaWdpbiIsICJzaWFfbG9naW5fcmVxdWlyZXNfcGFzc3dvcmQiLCAiY2xpY2tfYmFubmVyX3NpZ25pbl9lcCIsICJtYXJrZXRpbmdfdHJhY2tlcl9pbmNsdXNpb25fbWV0aG9kIiwgImVtYWlsX2xvZ2luX3N0YXJ0IiwgInNjcm9sbF9ldmVudCIsICJsaWNlbnNlcyIsICJzaG93bl9iYW5uZXJfc2lnbmluX2VwIiwgImVtYWlsX3NpZ251cF9zdGFydCIsICJzY3JpcHRfdXJsIiwgIndlYl9yZWRlc2lnbiIsICJkZXZpY2VfaWQiLCAiaWZyYW1lX3VyaSIsICJpbnN0YW5jZV9ldmVudF9jb3VudCIsICJsb2dpbl9tb2RhbF9zaG93biIsICJ1eC1hbmFseXRpY3MiLCAiYWRtaW5faG9tZV9jbGllbnRfYmFubmVyX2Rpc21pc3NlZCIsICJpbnN0YW5jZV9pbml0X3RzIiwgImhlYXJ0YmVhdCIsICJzaG93bl90b29sdGlwX3NpZ25pbl9lcCIsICJzY2FuX3N1Y2Nlc3MiLCAiZWxlbWVudF9zaG93biIsICJjdXJyZW5jeV9jb2RlIiwgInBhZ2VfdmlldyIsICJ0bF90ZW1wbGF0ZV9yZWRpcmVjdCIsICJuYXZpZ2F0aW9uX3R5cGUiLCAiaHNfbGFiZWwiLCAidXhhX2luY2x1c2lvbl9tZXRob2QiLCAiZ29vZ2xlX3NpZ251cF9zdWNjZWVkZWQiLCAidHlwZSIsICJlbWFpbF9sb2dpbl9zdWNjZWVkZWQiLCAiZW1haWxfbG9naW5fcmVxdWlyZXNfdHdvX2ZhY3RvciIsICJyZWRpcmVjdF90b19kcm9wYm94X3Ntb2RlX3N0b3JlX3BhZ2UiLCAic2lhX2xvZ2luX2ZhaWxlZCIsICJlbGVtZW50X2hpZGUiLCAic2lnbnVwX3NvdXJjZSIsICJyZWRpcmVjdF9zdWNjZXNzIiwgImRpYWxvZ19jbG9zZSIsICJnb29nbGVfbG9naW5fcmVxdWlyZXNfdHdvX2ZhY3RvciJdLCAibm9fcGlpX2NvbmZpZ192YXJpYWJsZXMiOiBbInZlcnRpY2FsX29mZnNldCIsICJhcHBfbmFtZSIsICJjbGllbnRfZXZlbnRfaWQiLCAiZWxlbWVudF9pZCIsICJ1eGFfZXZlbnRfY2xhc3NpZmljYXRpb25fbGV2ZWwiLCAiZXZlbnRfdHMiLCAibGlua19pZCIsICJwYXJhbV9hZCIsICJwYXJhbV9jYW1wIiwgInBhcmFtX2Rlc2t0b3BfbG9nZ2luZ19pZCIsICJwYXJhbV9mYmNsaWQiLCAicGFyYW1fZ2NsaWQiLCAicGFyYW1fa3ciLCAicGFyYW1fbXNjbGtpZCIsICJwYXJhbV9uZXQiLCAicGFyYW1fb3FhIiwgInBhcmFtX3RmbyIsICJwYXJhbV90ayIsICJwYXJhbV90cmlnZ2VyIiwgInBhcmFtX3V0bV9jYW1wYWlnbiIsICJwYXJhbV91dG1fY29udGVudCIsICJwYXJhbV91dG1fbWVkaXVtIiwgInBhcmFtX3V0bV9zb3VyY2UiLCAicGFyYW1fdXRtX3Rlcm0iLCAicG9zaXRpb25fcGN0X1giLCAicG9zaXRpb25fcGN0X1kiLCAidXhhX3YiLCAidXhhX2RlYnVnX3ZlcnNpb24iLCAidmFyaWFudHMiLCAiYWRvYmVfdGFyZ2V0X3ZhcmlhbnRzIiwgImluc3RhbmNlX2V2ZW50X2NvdW50IiwgImluc3RhbmNlX2luaXRfdHMiLCAicHJvZHVjdCIsICJwYXJlbnRfcHJvZHVjdCIsICJsaWNlbnNlcyIsICJ0eXBlIiwgInB1cmNoYXNlX3ByaWNlIiwgImN1cnJlbmN5X2NvZGUiLCAiYmlsbGluZ19jeWNsZSIsICJoc19hY3Rpb24iLCAiaHNfY2F0ZWdvcnkiLCAiaHNfbGFiZWwiLCAibWFya2V0aW5nX3RyYWNrZXJfaW5jbHVzaW9uX21ldGhvZCIsICJ1eGFfaW5jbHVzaW9uX21ldGhvZCIsICJuYXZpZ2F0aW9uX3R5cGUiLCAiZWxlbWVudF9zaG93bl9kdXJhdGlvbl9tcyJdLCAic2hvdWxkQmVTZW50VG9NYXJrZXRpbmdUcmFja2VyVmFyaWFibGVzIjogWyJ2ZXJ0aWNhbF9vZmZzZXQiLCAiYXBwX25hbWUiLCAiY2xpZW50X2V2ZW50X2lkIiwgImVsZW1lbnRfaWQiLCAidXhhX2V2ZW50X2NsYXNzaWZpY2F0aW9uX2xldmVsIiwgImV2ZW50X3RzIiwgImxpbmtfaWQiLCAicGFyYW1fYWQiLCAicGFyYW1fY2FtcCIsICJwYXJhbV9kZXNrdG9wX2xvZ2dpbmdfaWQiLCAicGFyYW1fZmJjbGlkIiwgInBhcmFtX2djbGlkIiwgInBhcmFtX2t3IiwgInBhcmFtX21zY2xraWQiLCAicGFyYW1fbmV0IiwgInBhcmFtX29xYSIsICJwYXJhbV90Zm8iLCAicGFyYW1fdGsiLCAicGFyYW1fdHJpZ2dlciIsICJwYXJhbV91dG1fY2FtcGFpZ24iLCAicGFyYW1fdXRtX2NvbnRlbnQiLCAicGFyYW1fdXRtX21lZGl1bSIsICJwYXJhbV91dG1fc291cmNlIiwgInBhcmFtX3V0bV90ZXJtIiwgInBvc2l0aW9uX3BjdF9YIiwgInBvc2l0aW9uX3BjdF9ZIiwgInV4YV92IiwgInV4YV9kZWJ1Z192ZXJzaW9uIiwgInZhcmlhbnRzIiwgImFkb2JlX3RhcmdldF92YXJpYW50cyIsICJpbnN0YW5jZV9ldmVudF9jb3VudCIsICJpbnN0YW5jZV9pbml0X3RzIiwgInByb2R1Y3QiLCAicGFyZW50X3Byb2R1Y3QiLCAibGljZW5zZXMiLCAidHlwZSIsICJwdXJjaGFzZV9wcmljZSIsICJjdXJyZW5jeV9jb2RlIiwgImJpbGxpbmdfY3ljbGUiLCAiaHNfYWN0aW9uIiwgImhzX2NhdGVnb3J5IiwgImhzX2xhYmVsIiwgIm1hcmtldGluZ190cmFja2VyX2luY2x1c2lvbl9tZXRob2QiLCAidXhhX2luY2x1c2lvbl9tZXRob2QiLCAibmF2aWdhdGlvbl90eXBlIiwgImVsZW1lbnRfc2hvd25fZHVyYXRpb25fbXMiXSwgImNvbmZpZ1RpbWUiOiAxNzExNTAxNjA3NDE1LCAiaXNJbnRlcm5hbElwIjogZmFsc2UsICJpc1VzZXJEcm9wYm94QWRtaW4iOiBmYWxzZSwgImFuYWx5dGljc0lkIjogIkFBQ1NFOXV0WDl1dk9VQUpLcUtDZHdQRkQ1SkFSM0RyS3JFbXg0c0ZBcjBjWHciLCAiZXhwRXZlbnRzVG9FeHBJZE1hcCI6IHsibW91c2V1cF9lbGVtZW50X2NsaWNrIjogIkNHSS0xMTYwIiwgInBhZ2VfZnJlZXplIjogIkNHSS05MzciLCAicGFnZV9yZXN1bWUiOiAiQ0dJLTkzNyIsICJzcGFfcGFnZV92aWV3IjogIkdUWC00MSIsICJkZWxheWVkX3BhZ2Vfdmlld193aXRoX2xhdGVfbWV0YV90YWciOiAiR1RYLTEyMiIsICJwcml2YWN5X2NvbnNlbnRfaWZyYW1lX2xvYWRlZCI6ICJDR0ktMTQ1IiwgInByaXZhY3lfY29uc2VudF9zY3JpcHRfbG9hZGVkIjogIkNHSS0xNDUiLCAicHJpdmFjeV9jb25zZW50X3NjcmlwdF9sb2FkX2Vycm9yIjogIkNHSS0xNDUiLCAiY29udmVyc2lvbkRhdGFSZWFkeSI6ICJDR0ktNjA3IiwgImxlZ2FjeV9oc19hbmFseXRpY3NfZXZlbnQiOiAiQ0dJLTU1MyIsICJtYXJrZXRpbmdfdHJhY2tlcl9yZWFkeV9mb3JfdXhhIjogIkNHSS0yMTgifSwgImV4cERhdGFGaWVsZHNUb0V4cElkTWFwIjogeyJhcHBfbmFtZSI6ICJDR0ktMTUyMiIsICJkZXZpY2VfaWQiOiAiR1JXQUNRLTU4NjciLCAidXhhX2V2ZW50X2NsYXNzaWZpY2F0aW9uX2xldmVsIjogIkNHSS03NDQiLCAic2lnbnVwX3NvdXJjZSI6ICJTSEFRLTIyMiIsICJ1eGFfZGVidWdfdmVyc2lvbiI6ICJDR0ktMTUxMSIsICJ3ZWJfcmVkZXNpZ24iOiAiQ0VYUC0xOTk0IiwgImFkb2JlX3RhcmdldF92YXJpYW50cyI6ICJHVFgtMTIyIiwgImluc3RhbmNlX2V2ZW50X2NvdW50IjogIkNHSS04MiIsICJpbnN0YW5jZV9pbml0X3RzIjogIkNHSS05NiIsICJpZnJhbWVfdXJpIjogIkNHSS0xNDUiLCAiY2xpY2tfc291cmNlIjogIkNHSS0xMTYwIiwgInNjcmlwdF9pZCI6ICJDR0ktMTQ1IiwgInNjcmlwdF91cmwiOiAiQ0dJLTE0NSIsICJ0b3RhbF90aW1lIjogIkNHSS0xNDUiLCAicHJvZHVjdCI6ICJDR0ktNjA3IiwgInBhcmVudF9wcm9kdWN0IjogIkNHSS02MDciLCAibGljZW5zZXMiOiAiQ0dJLTYwNyIsICJ0eXBlIjogIkNHSS02MDciLCAicHVyY2hhc2VfcHJpY2UiOiAiQ0dJLTYwNyIsICJjdXJyZW5jeV9jb2RlIjogIkNHSS02MDciLCAiYmlsbGluZ19jeWNsZSI6ICJDR0ktNjA3IiwgImhzX2FjdGlvbiI6ICJDR0ktNTUzIiwgImhzX2NhdGVnb3J5IjogIkNHSS01NTMiLCAiaHNfbGFiZWwiOiAiQ0dJLTU1MyIsICJtYXJrZXRpbmdfdHJhY2tlcl9pbmNsdXNpb25fbWV0aG9kIjogIkNHSS04MjkiLCAidXhhX2luY2x1c2lvbl9tZXRob2QiOiAiQ0dJLTQ4NiIsICJiZmNhY2hlX2VsaWdpYmxlIjogIkNHSS04NzgiLCAibmF2aWdhdGlvbl90eXBlIjogIkNHSS05MzkiLCAicGFnZV92aWV3X29yaWdpbiI6ICJDR0ktMTM4NiJ9LCAiaW5jbHVzaW9uTWV0aG9kIjogIkVESVNPTiIsICJlbnRpdGxlZEFwcHMiOiBbImRhc2giLCAidGVzdF9hcHAiXX0=", false ); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedPrefetch("Eu0CCjpwcml2YWN5X2NvbnNlbnRfZWRpc29uLlByaXZhY3lDb25zZW50RWRpc29uUHJlZmV0Y2hTZXJ2aWNlEhtQcml2YWN5Q29uc2VudFByb3BzUHJlZmV0Y2ga6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=", "ChNjb25zZW50LmRyb3Bib3guY29tEgJVUxgB", false ); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedPrefetch("EtgCCit1c2VyX3N1cnZleS5FZGlzb25Vc2VyU3VydmV5UHJlZmV0Y2hTZXJ2aWNlEhVFZGlzb25Vc2VyU3VydmV5RmV0Y2ga6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=", "", false ); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedPrefetch("Es4CCiN3ZWJfcGxhdGZvcm0uV2ViUGxhdGZvcm1FZGlzb25GZXRjaBITRWRpc29uRGV2VG9vbHNGZXRjaBrpARLmAVJxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTBacWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wKgtmaWxlX3ZpZXdlcjIZc2hhcmVkX2xpbmtfZ2VuZXJpY19lcnJvcg==", "IhAxNzExNTAxNjA3NDIzMzc0", false ); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedPrefetch("Es0CCiN3ZWJfcGxhdGZvcm0uV2ViUGxhdGZvcm1FZGlzb25GZXRjaBISRWRpc29uVG9wTWVudUZldGNoGukBEuYBUnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MFpxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTAqC2ZpbGVfdmlld2VyMhlzaGFyZWRfbGlua19nZW5lcmljX2Vycm9y", "CrIHeyJ1c2VySWQiOiBudWxsLCAiaGlkZUluc3RhbGxMaW5rIjogZmFsc2UsICJtb2JpbGVVc2VBcHBVcmwiOiAiaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vZGwvaG9tZS9tb2JpbGU/YWRncm91cD1oZWFkZXJcdTAwMjZjYW1wYWlnbj1tb3dlYl9idXR0b25cdTAwMjZjcmVhdGl2ZT11c2VfYXBwXHUwMDI2bW9iaWxlX2FwcF9mYWxsYmFjaz1cdTAwMjZzcmM9bW9iaWxlLXdlYi1sb2dnZWQtaW4iLCAic2hvdWxkU2hvd0FkbWluVGFza3NNZW51IjogZmFsc2UsICJoZWxwSHJlZiI6ICJodHRwczovL3d3dy5kcm9wYm94LmNvbS9oZWxwIiwgImF1dG9tYXRpb25zTGlua1ZhcmlhbnQiOiAiT0ZGIiwgInNob3dJbnN0YWxsRXh0ZW5zaW9uTGluayI6IGZhbHNlLCAiaXNJbkV4dGVuc2lvbkJldGFIb2xkYmFja0dyb3VwIjogZmFsc2UsICJ3aGF0c05ld0V4cGVyaW1lbnRzIjogeyJ3aGF0c05ld1VwZGF0ZVZhcmlhbnQiOiAiUkVMRUFTRV8yMDIzXzEyXzE5IiwgIndoYXRzTmV3U3VyZmFjZUVuaGFuY2VtZW50VmFyaWFudCI6ICJPRkYifSwgImlzQWRtaW5JbnZpdGVCdXR0b25FbmFibGVkIjogZmFsc2UsICJpc1Vwc2VsbEludml0ZUJ1dHRvbkVuYWJsZWQiOiBmYWxzZSwgIndlYlJlZGVzaWduR2xvYmFsSGVhZGVyIjogIk9GRiIsICJpc0NzbVRlYW1Vc2VyIjogZmFsc2UsICJtYW5hZ2VBY2NvdW50TGlua1ZhcmlhbnQiOiAiT0ZGIiwgInRlYW1JbnZpdGVzUGFpbnRlZERvb3JUZXN0VmFyaWFudCI6ICJPRkYiLCAibG9jYWxlIjogImVuIiwgImNvdW50cnlDb2RlIjogIlVTIiwgImlzSW5kaXZpZHVhbFVwc2VsbEludml0ZUJ1dHRvbkVuYWJsZWQiOiBmYWxzZSwgImlzRnJlZVRlYW1DcmVhdGlvbkJ1dHRvbkVuYWJsZWQiOiBmYWxzZSwgIm1vbmV4UGxzQ29udGFjdFNhbGVzQnV0dG9uVmFyaWFudCI6ICJPRkYiLCAiZGVza3RvcENvcHlSZWZyZXNoVmFyaWFudCI6ICJPRkYifQ==", false ); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/contacts", "json", "{\"LEGACY_CACHE_LIMIT\": \"OFF\", \"MERGE_SEARCH_ALLOWED\": {}}"); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/sharing", "json", "{\"GOLDEN_GATE\": {\"HAS_CONTENT_MANAGER_AND_SUPER_ADMIN\": {}, \"HAS_CONTENT_MANAGER_CDM\": {}, \"HAS_CONTENT_MANAGER_CDM_IN_TSD\": {}, \"HAS_NEW_OWNERSHIP_MODEL\": {}, \"CAN_RESTORE_FOLDERS_IN_CM\": {}, \"SHARING_TOTAL_LIMIT\": 1000}, \"SHARING_EXPERIMENTS\": {\"FIX_MAX_ACCOUNT_BATCH_SIZE\": false, \"MINI_MODAL_LINK_AUDIENCE_VARIANT\": \"OFF\", \"SHARED_LINK_ATTRIBUTION_TRACKING\": \"OFF\"}, \"SHARING_MODAL\": {\"SHOW_UPGRADE_TO_BIZ_BANNER\": {}}, \"TRUELINK\": {\"TRUELINK_BROWSE_LINK_ICON\": {}, \"NO_COMMENT_ENABLED\": {}}, \"ShareTibActionOriginType\": {\"BROWSE_FILE_ROW\": 1, \"FILE_ROW_SHARE_MENU\": 2, \"PREVIEW_PAGE\": 3, \"NOTIFICATION_WEB\": 4, \"RECENTS\": 5, \"SHARE\": 6, \"GRANT_ACCESS\": 8, \"DESKTOP_CLIENT\": 9, \"WIZARD\": 10, \"OFFICE_INTEGRATION\": 11, \"LEGACY_BROWSE\": 12, \"SHARE_LINK_MODAL\": 13, \"BROWSE_SHARED_FOLDER_BANNER\": 14, \"BROWSE_GLOBAL_ACTIONS\": 15, \"EVENTS_PAGE\": 16, \"BROWSE_FILE_ACTIONS\": 17, \"CONTENT_MANAGER\": 18, \"PARENT_FOLDER_MODAL\": 19, \"OUT_OF_QUOTA_MODAL\": 20, \"LINKS_PAGE\": 21, \"PREVIEW_PAGE_FACEPILE\": 22, \"BROWSE_FILE_FACEPILE\": 23, \"SHARE_PAGE_FROM_EMAIL\": 24, \"SHARE_PAGE_FROM_NOTIFICATION_WEB\": 25, \"COPY_SCL_LINK_MODAL\": 26, \"BROWSE_NEW_FOLDER_MODAL\": 27, \"STARRED\": 28, \"AUTO_MOUNT\": 29, \"BROWSE_FILE_ROW_BUTTON\": 30, \"BROWSE_FILE_ROW_OVERFLOW_MENU\": 31, \"EXTERNAL_SHARING_PAGE\": 32, \"SHARE_TO_UPLOAD\": 35, \"COPY_LINK_FROM_UPLOAD_MODAL\": 36, \"SHARING_PREVIEW_PAGE\": 37, \"SHARE_PAGE_INLINE\": 38, \"POST_DOWNLOAD_MODAL\": 40, \"FILE_REQUESTS\": 42, \"BROWSE_COPY_ACTION\": 43, \"BROWSE_MOVE_ACTION\": 44, \"FROM_EMAIL\": 45, \"REQUEST_ACCESS_MODAL\": 46, \"CREATE_SHARED_FOLDER_MODAL\": 47, \"DEFAULT_SHARING_SETTINGS_TAB\": 48, \"SAVE_TO_DROPBOX\": 49, \"PREVIEW_PAGE_FILE_ROW_OVERFLOW_MENU\": 50, \"PREVIEW_PAGE_FILE_ROW_BUTTON\": 51, \"JOIN_FOLDER_BUTTON\": 52, \"PREVIEW_PAGE_GRID_SINGLE_FILE_ACTION\": 53, \"PREVIEW_PAGE_TITLEBAR\": 54, \"BROWSE_SHARE_ACTION_FILE_CHOOSER\": 55, \"QUICK_VIEW_BROWSE\": 56, \"QUICK_VIEW_SEARCH\": 57, \"BROWSE_CONTENT_TILE\": 58, \"SEARCH_CONTENT_TILE\": 59, \"SUGGESTIONS_CONTENT_TILE\": 60, \"BROWSE_CONTENT_TILE_BUTTON\": 61, \"HARMONY\": 101, \"NOTIFICATION_CLIENT\": 102, \"NATIVE_SHARE_CLIENT\": 103, \"FILESYSTEM\": 104, \"NOTIFICATION_MOBILE\": 201, \"WEB_MOBILE\": 202, \"IN_APP\": 210, \"EMAIL\": 301, \"GMAIL_PLUGIN\": 302, \"OUTLOOK_ADDIN\": 303, \"PAPER_INTEGRATION\": 401, \"GOOGLE_DSS\": 501, \"TRELLO_FILE_VIEWER\": 601, \"SHARING_SDK_SANDBOX\": 700, \"SHARING_SDK_PAPER\": 701, \"SHARING_SDK_DESKTOP\": 702, \"CONTROLLED_ACCESS_SU_BANNER\": 803, \"UPLOAD_BUTTON\": 804, \"UPLOAD_JOIN_FOLDER_MODAL\": 805, \"UPLOAD_SNACKBAR\": 806, \"QUICK_REACT\": 810, \"COLLECTIONS\": 903, \"SIGN_UP_WELCOME_MODAL\": 1000, \"FLEXIBLE_SHARING_ENTRYPOINT\": 1050, \"SIMPLE_COPY_LINK_FILE_PREVIEW\": 1100, \"DOWNLOAD_BUTTON\": 1101, \"ACTION_CONTINUATION\": 1102, \"SIMPLE_COPY_LINK_FOLDER_PREVIEW\": 1103, \"LEFT_NAV_ONBOARDING_CHECKLIST\": 1104, \"UPLOAD_DRAWER\": 1105, \"PREVIEW_AUTO_SAVE\": 1106, \"COPY_LINK_MINI_MODAL\": 1107, \"ONBOARDING_SHARE_SLIDE\": 1108}}"); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/fingerprintjs_constants", "json", "{\"FINGERPRINTJS_TOKEN\": \"hSrgVEjs3amxLolocQ18\", \"SHOULD_INVOKE_FINGERPRINTJS\": true, \"REGION\": \"us\"}"); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/login_and_register", "json", "{\"GOOGLE_LOGIN_DESKTOP\": \"ON_TOP\", \"APPLE_LOGIN_DESKTOP\": \"ON\", \"LENOVO_LOGIN_DESKTOP\": \"OFF\", \"REDIRECT_WINDOW_TOKEN\": \"Achzyw0eEMKtGLDGFSuExYfUimffsltEfoKeLjvjrVEouA\", \"FUNCAPTCHA_PUBLIC_KEY\": \"419899FA-7FAF-5C1D-C027-BC34963E3A4F\", \"SHOULD_LOAD_FUNCAPTCHA\": true, \"FUNCAPTCHA_REGISTER_PUBLIC_KEY\": \"68CECE5D-F360-8653-CA80-3CF99353DDD2\", \"FUNCAPTCHA_PAYMENT_PUBLIC_KEY\": \"8AFFAA35-0217-4EF9-83C8-C62CF9EBCFB3\"}"); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/web_experience_constants", "json", "{\"IS_ADMIN_CONSOLE_OVERHAUL_ENABLED\": false, \"SAVED_VIEW\": \"OFF\", \"LEFT_NAV_QUERY_LIST_SECTION\": \"OFF\", \"REACT_ROUTER_PAP\": false, \"DEFAULT_DRAG_AND_DROP\": \"OFF\", \"HOME_REDUX_USE_STARRING\": false, \"CONTENT_TILES\": \"OFF\", \"CONTENT_TILES_SEARCH\": \"OFF\", \"CONTENT_TILES_QUICK_ACTIONS\": \"OFF\", \"CONTENT_TILES_FOLDER_COLLAGE\": \"OFF\", \"FOLDER_COLLAGE_ASPECT_RATIO\": \"OFF\", \"CONTENT_TILES_INTERACTIVITY_VIDEO\": \"OFF\", \"CONTENT_TILES_INTERACTIVITY_FOLDER\": \"OFF\", \"CONTENT_TILES_INTERACTIVITY_PDF\": \"OFF\", \"CONTENT_TILES_DELAY_INTERACTIVITY\": \"OFF\", \"CONTENT_TILES_STREAMING_ENDPOINT\": \"OFF\", \"RECENTS_WITH_FACETS\": \"OFF\", \"BROWSE_ON_CYPRESS\": \"CYPRESS_OTHER_USER\", \"BROWSE_CONTENT_SUGGESTIONS_VARIANT\": \"OFF\", \"THEME_PROVIDER_THEME\": \"OFF\", \"DIG_FEATURE_LEVEL\": \"OFF\", \"BROWSE_WITH_FACETS\": \"OFF\", \"SECTION_COMPONENT_BROWSE\": \"OFF\", \"FOLDER_LEVEL_FILTER\": \"OFF\", \"WEB_REDESIGN_GLOBAL_HEADER\": \"OFF\", \"BROWSE_DEFAULT_GRID_VIEW\": \"OFF\", \"WEB_REDESIGN_ACTION_BAR_ANIMATION\": \"OFF\", \"FOLDER_CREATE_WITHOUT_REDIRECT\": \"OFF\", \"BROWSE_FILE_VIEW_REFACTOR\": \"OFF\", \"QUICK_VIEW_BROWSE\": \"OFF\", \"BROWSE_SHARE_ENTRYPOINTS_REVAMP\": \"OFF\", \"ACTIONS_OVERFLOW_MENU_PERF\": \"OFF\", \"QUICK_VIEW_RELATED_FILES\": \"OFF\", \"CONTENT_TILES_INTERACTIVITY_STREAMING_ONLY\": \"OFF\", \"WEB_REDESIGN_ACTION_BAR\": \"OFF\", \"QUICK_VIEW_FOLDER_VIEW\": \"OFF\", \"CONTENT_TILES_TRAILING_TRUNCATION\": \"OFF\", \"INTELLIGENCE_APRIL_2024_HOLDOUT_CONTROL\": \"OFF\", \"BROWSE_CAMPAIGN_CONFLICT_RESOLUTION\": false}"); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { + window.require(["js/edison/edison"], function (edisonModule) { + edisonModule.Edison.waitUntilInitialized().then(function() { + edisonModule.Edison.doneStreaming(); + }); + }); +}); +</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=" async src="/page_success/end?edison_page_name=shared_link_generic_error&path=%2Fscl%2Ffi%2F6nohk2uv89pupe8tjj9ib%2Fck_data_01242024.tar.gz&request_id=f2bad419193640d08417c46bd13870a9&time=1711501607" crossorigin="anonymous"></script> +</body></html><!--status=200--> \ No newline at end of file diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 098c2e69..52dce8d0 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -49,12 +49,12 @@ inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) { Real vy = *v3; Real vz = *v1; - Real delta = pow(pow(x, 2) + pow(y, 2) + 1, 1 / 2); - Real C = pow(1 + pow(x, 2), 1 / 2); - Real D = pow(1 + pow(y, 2), 1 / 2); + Real delta = sqrt(pow(x, 2) + pow(y, 2) + 1); + Real C = sqrt(1 + pow(x, 2)); + Real D = sqrt(1 + pow(y, 2)); *v1 = (vz - D * x * vx - C * y * vy) / delta; - *v2 = + *v2 = (x * vz + D * vx) / delta; *v3 = (y * vz + C * vy) / delta; @@ -69,13 +69,13 @@ inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) { Real vy = *v3; Real vz = *v1; - Real delta = pow(pow(x, 2) + pow(y, 2) + 1, 1 / 2); - Real C = pow(1 + pow(x, 2), 1 / 2); - Real D = pow(1 + pow(y, 2), 1 / 2); + Real delta = sqrt(pow(x, 2) + pow(y, 2) + 1); + Real C = sqrt(1 + pow(x, 2)); + Real D = sqrt(1 + pow(y, 2)); *v1 = (vz + x * vx + y * vy) / delta; *v2 = - (-x * vz / D + vx * (1 + pow(vy, 2)) / D - vy * x * y / D) / delta; + (-x * vz / D + vx * (1 + pow(y, 2)) / D - vy * x * y / D) / delta; *v3 = (-y * vz / C - x * y * vx / C + (1 + pow(x, 2)) * vy / C) / delta; } @@ -86,60 +86,182 @@ inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) { inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, int panel) { vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; switch (panel) { case 2: // z->y, x->-x, y->z - (*vx) *= -1; - vel_zxy_to_zab(vy, vx, vz, a, b); + //(*vx) *= -1; + //vel_zxy_to_zab(vy, vx, vz, a, b); + *vz = v3; + *vx = -v2; + *vy = v1; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 3: // z->-x, x->z, y->y - (*vz) *= -1; - vel_zxy_to_zab(vx, vz, vy, a, b); + //(*vz) *= -1; + //vel_zxy_to_zab(vx, vz, vy, a, b); + *vz = v2; + *vx = -v1; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 4: // z->-x, x->-y, y->z - (*vx) *= -1; - (*vy) *= -1; - vel_zxy_to_zab(vx, vy, vz, a, b); + //(*vx) *= -1; + //(*vy) *= -1; + //vel_zxy_to_zab(vx, vy, vz, a, b); + *vz = -v2; + *vx = -v3; + *vy = v1; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 5: + // z->-z, x->-x, y->y + *vz = -v1; + *vx = -v2; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 6: // z->-y, x->x, y->z - (*vy) *= -1; - vel_zxy_to_zab(vy, vx, vz, a, b); + //(*vy) *= -1; + //vel_zxy_to_zab(vy, vx, vz, a, b); + *vz = -v3; + *vx = v2; + *vy = v1; + vel_zxy_to_zab(vz, vx, vy, a, b); break; } } -inline void vel_zab_from_p1_test(std::vector<Real> &v, int panel) { - Real vz = v[0]; - Real vx = v[1]; - Real vy = v[2]; +inline void vel_zab_from_p2(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; switch (panel) { - case 2: + case 1: // z->y, x->-x, y->z - //(*vx) *= -1; - v = {vy, -vx, vz}; + *vz = v3; + *vx = -v2; + *vy = v1; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 2: + break; + case 4: + break; + case 5: + break; + case 6: + break; + } +} + +inline void vel_zab_from_p3(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; + switch (panel) { + case 1: + // z->x, x->-z, y->y + *vz = -v2; + *vx = v1; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 2: + break; + case 4: + break; + case 5: + break; + case 6: + break; + } +} + +inline void vel_zab_from_p4(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; + switch (panel) { + case 1: + // z->y, x->-z, y->-x + *vz = v3; + *vx = -v1; + *vy = -v2; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 2: + break; + case 3: + break; + case 5: + break; + case 6: + break; + } +} + +inline void vel_zab_from_p5(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; + switch (panel) { + case 1: + // z->-z, x->-x, y->y + *vz = -v1; + *vx = -v2; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 2: break; case 3: - // z->-x, x->z, y->y - //(*vz) *= -1; - v = {vx, -vz, vy}; break; case 4: - // z->-x, x->-y, y->z - //(*vx) *= -1; - //(*vy) *= -1; - v = {-vx, -vy, vz}; break; case 6: - // z->-y, x->x, y->z - //(*vy) *= -1; - v = {-vy, vx, vz}; + break; + } +} + +inline void vel_zab_from_p6(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; + switch (panel) { + case 1: + // z->y, x->x, y->-z + *vz = v3; + *vx = v2; + *vy = -v1; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 2: + break; + case 3: + break; + case 4: + break; + case 5: break; } } } // namespace CubedSphereUtility -#endif // SRC_EXO3_VELOCITY_ROTATION_HPP_ +#endif // SRC_EXO3_VELOCITY_ROTATION_HPP_ \ No newline at end of file diff --git a/tests/test_cs_velocity_rotation.cpp b/tests/test_cs_velocity_rotation.cpp index 3173e464..e829f43c 100644 --- a/tests/test_cs_velocity_rotation.cpp +++ b/tests/test_cs_velocity_rotation.cpp @@ -14,18 +14,70 @@ // exo3 #include <exo3/cs_velocity_rotation.hpp> -TEST(vel_zab_from_p1_test, test_case_to_4) { - std::vector <Real> result = {1,2,3}; - std::vector <Real> expected_result = {-2,-3,1}; - CubedSphereUtility::vel_zab_from_p1_test(result, 4); - EXPECT_EQ(result, expected_result); +TEST(vel_zab_to_zxy, test_ab_to_xy_to_ab) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zxy_to_zab(vz, vx, vy, PI/3, PI/4); + std::cout << *vz << " " << *vx << " " << *vy; + CubedSphereUtility::vel_zab_to_zxy(vz, vx, vy, PI/3, PI/4); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], pow(10,-5)); + } } -TEST(vel_zab_from_p1_test, test_case_to_6) { - std::vector <Real> result = {1,2,3}; - std::vector <Real> expected_result = {-3,2,1}; - CubedSphereUtility::vel_zab_from_p1_test(result, 6); - EXPECT_EQ(result, expected_result); +TEST(vel_zab_from_test, test_case_1_to_3_to_1) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 3); + CubedSphereUtility::vel_zab_from_p3(vz, vx, vy, PI/5*2, PI/8*3, 1); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], pow(10,-5)); + } +} + +TEST(vel_zab_from_test, test_case_1_to_4_to_1) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 4); + CubedSphereUtility::vel_zab_from_p4(vz, vx, vy, PI/5*2, PI/8*3, 1); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], pow(10,-5)); + } +} + +TEST(vel_zab_from_test, test_case_1_to_5_to_1) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 5); + CubedSphereUtility::vel_zab_from_p5(vz, vx, vy, PI/5*2, PI/8*3, 1); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], pow(10,-5)); + } +} + +TEST(vel_zab_from_test, test_case_1_to_6_to_1) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 6); + CubedSphereUtility::vel_zab_from_p6(vz, vx, vy, PI/5*2, PI/8*3, 1); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], pow(10,-5)); + } } int main(int argc, char **argv) { From 4e6bc7a8e38d1edf58e172bb2711e99e9527c54f Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Sat, 30 Mar 2024 12:03:34 -0400 Subject: [PATCH 18/22] correction --- data/ck_data_01242024.tar.gz | 169 ---------------------------- src/exo3/cs_velocity_rotation.hpp | 38 ++----- tests/test_cs_velocity_rotation.cpp | 28 ++--- 3 files changed, 22 insertions(+), 213 deletions(-) delete mode 100644 data/ck_data_01242024.tar.gz diff --git a/data/ck_data_01242024.tar.gz b/data/ck_data_01242024.tar.gz deleted file mode 100644 index 1dad420e..00000000 --- a/data/ck_data_01242024.tar.gz +++ /dev/null @@ -1,169 +0,0 @@ -<!DOCTYPE html> -<html class="maestro global-header" xmlns="http://www.w3.org/1999/xhtml" lang="en"> -<head><meta charset="utf-8" /> -<meta content="noindex, nofollow, noimageindex" name="robots" /> -<meta content="width=device-width, initial-scale=1" name="viewport" /> -<script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.EDISON_METRICS_JS_EXECUTION_START = performance.now(); -</script><title>Dropbox - Error - Simplify your life</title> -<link rel="shortcut icon" href="https://cfl.dropboxstatic.com/static/metaserver/static/images/favicon.ico"/> -<script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.CSP_SCRIPT_NONCE = "AneY6l0rmcrTspXW3Ml/lWjNg/M="</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">(()=>{"use strict";const e=window;let a;const r=()=>{a=[],e.addRequireLoadCallback=e=>a.push(e),e.configureRequire=function(){const a=arguments;e.addRequireLoadCallback(()=>e.configureRequire.apply(null,a))},e.define=function(){const a=arguments;e.addRequireLoadCallback(()=>e.define.apply(null,a))},e.preLoadFile=(...a)=>{e.addRequireLoadCallback(()=>e.preLoadFile.apply(null,a))}};r(),e._insertRequireShim=r,e.InitRequireJs=r=>{e.requireContexts={},e.performance&&null!=e.performance.now&&(requirejs.onResourceLoad=(a,r,i)=>{const l=e.performance.now(),n=e.requireContexts[a.id];if(n){r.id in n.module_callback_times||(n.module_callback_times[r.id]={});const e=n.module_callback_times[r.id];e.loadTime=l,r.url&&(e.url=r.url),r.id&&(e.name=r.id),r.parentMap&&r.parentMap.url&&(e.parent=r.parentMap.url)}}),e.configureRequire=r,e.addRequireLoadCallback=e=>e(),a.forEach(e=>e())}})(); - -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">(function () { - var start = performance.now(); - window.addRequireLoadCallback(function() { - window.EDISON_METRICS_REQUIRE_LOAD_CALLBACK_TIME = performance.now() - start; - }); -})(); -</script><script nonce="qt/Rb6UUlrEW14eg1QL1RVaJaME=" src="https://cfl.dropboxstatic.com/static/metaserver/static/js/alameda_bundle/alameda_bundle_ie_en-vflXFwp8G.js" crossorigin="anonymous"></script> -</head><body><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.RUNNING_IN_EDISON = true; -var requireConfig = {"baseUrl": "https://cfl.dropboxstatic.com/", "waitSeconds": 30, "paths": {"atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c__commonjsHelpers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c__commonjsHelpers-vfllnoP_U", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_abuse_fingerprintjs_component": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_abuse_fingerprintjs_component-vflzZLLoa", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_abuse_funcaptcha_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_abuse_funcaptcha_modal-vflK7C5yq", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_accessibility_audit": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_accessibility_audit-vflDB77Rq", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_accessibility_ax_audit": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_accessibility_ax_audit-vfl-TBEcL", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_account_email": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_account_email-vflILGR0P", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_account_timezone_detection": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_account_timezone_detection-vfl5pa9ua", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_activation_data_slices": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_activation_data_slices-vflH5KQqm", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_activation_data_store": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_activation_data_store-vflXwtbc-", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_admin_tasks_dropdown_in_progress_admin_tasks": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_admin_tasks_dropdown_in_progress_admin_tasks-vfloyEogZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_adyen-checkout": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_adyen-checkout-vflm8avJe", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_adyen-web_dist_adyen": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_adyen-web_dist_adyen-vfldQm_Gq", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_apex-metrics_src_types": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_apex-metrics_src_types-vflRK2vZU", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_api_v2_default_team_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_api_v2_default_team_client-vfltVfvuC", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_api_v2_routes_domain_contacts_provider": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_api_v2_routes_domain_contacts_provider-vfltgbUI4", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_assets_pictogram_lightbulb": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_assets_pictogram_lightbulb-vflTULxD5", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_assets_pictogram_warning": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_assets_pictogram_warning-vflGUBZH3", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_auth_login_or_register_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_auth_login_or_register_modal-vflTSbH-Z", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_auth_login_or_register_types": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_auth_login_or_register_types-vflwwH5oK", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_banner_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_banner_index-vflkPzOQt", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_bem": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_bem-vflSgJN94", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browse_uri_helper": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browse_uri_helper-vflKHIQg4", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browse_uri_interface": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browse_uri_interface-vfld8tSDv", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browser_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_browser_index-vfl_G2Bx_", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_action_choice_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_action_choice_modal-vfl2XnZd8", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_banner_campaign_banner": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_banner_campaign_banner-vflRe6nRy", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_billing_modal_campaign_billing_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_billing_modal_campaign_billing_modal-vflpRNrP0", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_dialog_campaign_dialog": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_dialog_campaign_dialog-vflsA-LlH", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_bubble_campaign_link_bubble": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_bubble_campaign_link_bubble-vflJxsg9R", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_campaign_link": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_campaign_link-vflBnOghp", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_campaign_link_renderer": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_link_campaign_link_renderer-vflDxpGts", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_menu_campaign_menu_item": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_menu_campaign_menu_item-vflFtePgV", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_modal_campaign_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_modal_campaign_modal-vflGs568w", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_pulsar_campaign_pulsar": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_pulsar_campaign_pulsar-vfl5e_QSu", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_snackbar_campaign_snackbar": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_snackbar_campaign_snackbar-vfl1SvGvl", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_tooltip_campaign_tooltip": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaign_formats_tooltip_campaign_tooltip-vflypBa1E", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_action_defs_api": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_action_defs_api-vfll7ppR7", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaign_uri_param": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaign_uri_param-vfleQ9pvD", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaigns_element_id_enum": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaigns_element_id_enum-vflW3pU6B", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaigns_toolkit_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_campaigns_toolkit_client-vflsszjsn", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_hooks_logging": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_campaigns_hooks_logging-vflMo_8mZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_chat_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_chat_client-vflG6sUHo", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_dialogue": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_dialogue-vflSaZZ79", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_dialogue_logging": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chat_dialogue_logging-vflTnkUbd", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chip_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_chip_index-vfl2Jtmje", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_combinations_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_combinations_index-vflP7BeXi", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_components_dwg-tooltip_control": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_components_dwg-tooltip_control-vflbMLz4X", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_components_order_summary_redesign_order_summary_utils": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_components_order_summary_redesign_order_summary_utils-vfla9kPPQ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_contacts_types": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_contacts_types-vflUPnnuG", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_controls_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_controls_index-vflsW1F5J", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_attribution_header": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_attribution_header-vflZPsXEt", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_exception_info": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_exception_info-vflUROgBu", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_i18n": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_i18n-vflSDWhD-", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_notify": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_notify-vflhfHTHw", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_toast_toast_on_init": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_toast_toast_on_init-vflc6Kq_l", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_transport_query_string_helpers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_transport_query_string_helpers-vflphrWge", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_xhr": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_core_xhr-vflCcDVOv", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_csrf": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_csrf-vflYURPxp", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_checkout_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_checkout_modal-vflKjWdYd", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_lmo_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_lmo_modal-vflz0cj_a", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_mid_trial_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_mid_trial_modal-vflYUWddC", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_onboarding_survey_modal_campaign_onboarding_survey_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_custom_campaigns_onboarding_survey_modal_campaign_onboarding_survey_modal-vflC930AA", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_dev_notifier_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_dev_notifier_client-vflb95px-", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_launcher_launcher_item": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_launcher_launcher_item-vflfOwzZT", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_launcher_launcher_sandbox": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_launcher_launcher_sandbox-vfl1jPA7h", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_panels": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_devtools_panels-vflzCGRuO", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_dialogue_actions_chat_actions": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_dialogue_actions_chat_actions-vfltOv9zJ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_dialogue_reducers_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_dialogue_reducers_index-vflEURdEn", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_edison_cookies_check": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_edison_cookies_check-vflssKe5D", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_edison_ui_react_router_compat": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_edison_ui_react_router_compat-vfl10ZjlS", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_elliptic_lib_elliptic": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_elliptic_lib_elliptic-vflbt-Idu", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_em_string": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_em_string-vflr-GBLg", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_esm_useResizeObserver": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_esm_useResizeObserver-vflZKuaNG", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_file_imports_ui_entry": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_file_imports_ui_entry-vflsjojYo", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_fingerprintjs-pro-static_dist_fp": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_fingerprintjs-pro-static_dist_fp-vflWzBQ6s", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_form_row_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_form_row_index-vflWKbE7W", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth-components_plan-comparison-modal_plan_comparison_modal_contents": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth-components_plan-comparison-modal_plan_comparison_modal_contents-vflOjRV9H", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth-components_quota-bar_quota_bar": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth-components_quota-bar_quota_bar-vfl5C_To7", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth_trials_api_v2": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_growth_trials_api_v2-vfl1Qlags", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_helpers_esm_extends": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_helpers_esm_extends-vflk9wiuf", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_helpers_hooks_component-did-mount": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_helpers_hooks_component-did-mount-vflybgC_I", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_hooks_use_screen_size": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_hooks_use_screen_size-vflVXptS5", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_init_data_edison": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_init_data_edison-vflQn2hgW", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_invite_nav_invite_button_invite_button": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_invite_nav_invite_button_invite_button-vflR3IOAW", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_learning_center": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_learning_center-vfl4AL39e", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_learning_center2": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_learning_center2-vflabOiS9", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_list_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_list_index-vfl-CX5nU", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_lodash-es_lodash": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_lodash-es_lodash-vflOJ76WI", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_lottie-react_build_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_lottie-react_build_index-vflHxPNUl", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_assets_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_assets_index-vflk4pr4Y", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_index-vflZkRkCf", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_pictogram_icon": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_pictogram_icon-vfl79RS2X", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_shelf-empty": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_shelf-empty-vflmVLvSJ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_star-stickers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_star-stickers-vflhv6pi3", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_traffic-duck-crossing": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_traffic-duck-crossing-vflrcHPYD", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_traffic-road-blocked": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_traffic-road-blocked-vflFWABVl", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_trash-empty": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_mjs_spot_trash-empty-vfl2PKw-O", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_modal_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_modal_index-vflBI4oiM", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ncct_manual_assist_util": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ncct_manual_assist_util-vflnx3hwy", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_payments_skus_subscription_service": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_payments_skus_subscription_service-vflWuwJ6x", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_performance-bookmarklet": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_performance-bookmarklet-vfllvBlJR", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_photo_upload_controller": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_photo_upload_controller-vflxpE8ZS", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_pkijs_build_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_pkijs_build_index-vflCJK0Gn", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_privacy_consent_load_privacy_consent": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_privacy_consent_load_privacy_consent-vfl2xmSlQ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_profile_services_profile_services_constants": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_profile_services_profile_services_constants-vfl6UuiKD", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_profile_services_profile_services_link": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_profile_services_profile_services_link-vflgEQ_m7", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_prompt_ui_home_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_prompt_ui_home_modal-vflnO7p3g", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_pvtsutils_build_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_pvtsutils_build_index-vflMf9vHp", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react-dom-next_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react-dom-next_client-vflHpoegk", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react-is_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react-is_index-vflRE116H", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react_query_api_helpers_helpers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react_query_api_helpers_helpers-vflMcF9xk", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react_query_helpers_helpers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_react_query_helpers_helpers-vfl6e6Mlc", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_redux_unsupported": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_redux_unsupported-vfl6IRrTX", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_rfc4648_lib_rfc4648": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_rfc4648_lib_rfc4648-vfl6x26tb", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_crypto": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_crypto-vfld_nxWG", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_legacy_edge_shim": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_legacy_edge_shim-vflWoj9F4", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_passwords": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_passwords-vflAYFjYz", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_util": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_security_util-vfl0R6-29", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_server_side_client_view_bridge": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_server_side_client_view_bridge-vfljr-Lbf", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_sharing_api_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_sharing_api_client-vflA0vXAY", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_signup_signin_helpers": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_signup_signin_helpers-vflR4ofYC", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_button": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_button-vflbl__lW", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_checkbox": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_checkbox-vfllSICkU", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_popover_popover_trigger": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_spectrum_popover_popover_trigger-vfl573k3i", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_common_constants": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_common_constants-vflYpH7jL", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_query_client": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_query_client-vflHQ8_Ke", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_sink_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_src_sink_index-vflkFkPYe", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_styled-components": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_styled-components-vflhixqjF", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_teams_idle_timeout_pagelet": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_teams_idle_timeout_pagelet-vflGWBzUx", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_teams_team_creation_free_team_create_button": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_teams_team_creation_free_team_create_button-vflM4eE-E", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_toolkit_dist_redux-toolkit": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_toolkit_dist_redux-toolkit-vflrT4xxl", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_truncate_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_truncate_index-vflEUk4R2", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_fill_checkmark-circle": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_fill_checkmark-circle-vflIsqCOt", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_fill_fail": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_fill_fail-vflE34k63", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_calendar": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_calendar-vflBKIbWs", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_checkmark-circle": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_checkmark-circle-vflm0XeuC", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_comment": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_comment-vflDUhTez", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_dropbox": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_dropbox-vflCJ86lo", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_folder": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_folder-vflCAym72", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_link": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_link-vflOMA3xx", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_more-horizontal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_more-horizontal-vflY7ites", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_passwords": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_passwords-vflgE7dCA", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_pdf": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_pdf-vflG-8hrL", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_phone-support": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_phone-support-vflRABWw9", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_shield": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_shield-vflwzjTRW", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_show": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_show-vfluvLUI2", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_signature": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_signature-vflGfCdc6", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_space": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_space-vflMCoFuC", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_star": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_star-vfl50A3nL", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_syncing": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_syncing-vfl3UtdCt", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_twinkle-1": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_twinkle-1-vflkOx463", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_twinkle-2": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_twinkle-2-vflEASq4-", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upgrade": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upgrade-vfldBme3P", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upload": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upload-vfllEXd6f", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upload-file": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui-icon_line_upload-file-vfl0fTpta", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_contact_sales_button_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_contact_sales_button_index-vflIPfVQ2", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_image": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_image-vflJC1030", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_input_dig": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_input_dig-vfl5OUcAZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_locale_selector_modal": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_locale_selector_modal-vflNqziWZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_modal_dig": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_modal_dig-vfl11cKpZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_overlay": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_overlay-vflHzSaP5", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_sprite": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_sprite-vflNK4XSO", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_trials_types": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ui_trials_types-vfl2ZJBmG", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_use-sync-external-store_shim_index": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_use-sync-external-store_shim_index-vflH_PMqU", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_dropdown_bluenote_row": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_dropdown_bluenote_row-vflZix-r8", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_group_actions": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_group_actions-vflulEplj", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_sharing_actions": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_user_notifications_sharing_actions-vflgXGCu2", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ux_analytics_styles_devtools": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ux_analytics_styles_devtools-vflsHFAjm", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ux_analytics_ux_variants": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_ux_analytics_ux_variants-vflrOeCUV", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_uxa_pagelet": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_uxa_pagelet-vfl7IPGM9", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_zxcvbn_lib_main": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/c_zxcvbn_lib_main-vflMo_kar", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception-vfl3MW8JA", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception_reporter": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception_reporter-vflHWmykm", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_data_modules_stormcrow": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_data_modules_stormcrow-vflyE-JQZ", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison-vflTYFpvH", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_edison_react_page": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_edison_react_page-vfld2O7LI", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_error_pages_generic_error": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_error_pages_generic_error-vfl_VAFXn", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_init_edison_page": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_init_edison_page-vfl0279Fr", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-vflYWmbcM", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom-vflI7_n6Z", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom-next": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom-next-vflZBQXkh", "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-next": "static/atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-next-vfl2G3Nv-", "json_loader!metaserver/static/js/langpack/icu-da_DK.json": "static/metaserver/static/js/langpack/icu-da_DK-vflz5Aofy.json", "json_loader!metaserver/static/js/langpack/icu-de.json": "static/metaserver/static/js/langpack/icu-de-vflnZDWu5.json", "json_loader!metaserver/static/js/langpack/icu-en.json": "static/metaserver/static/js/langpack/icu-en-vflmZFLky.json", "json_loader!metaserver/static/js/langpack/icu-en_GB.json": "static/metaserver/static/js/langpack/icu-en_GB-vfltLIjhc.json", "json_loader!metaserver/static/js/langpack/icu-es.json": "static/metaserver/static/js/langpack/icu-es-vfliQeUel.json", "json_loader!metaserver/static/js/langpack/icu-es_ES.json": "static/metaserver/static/js/langpack/icu-es_ES-vflgUwS5J.json", "json_loader!metaserver/static/js/langpack/icu-fr.json": "static/metaserver/static/js/langpack/icu-fr-vfl1LwDrl.json", "json_loader!metaserver/static/js/langpack/icu-fr_CA.json": "static/metaserver/static/js/langpack/icu-fr_CA-vflijstqJ.json", "json_loader!metaserver/static/js/langpack/icu-id.json": "static/metaserver/static/js/langpack/icu-id-vflxf4Zlf.json", "json_loader!metaserver/static/js/langpack/icu-it.json": "static/metaserver/static/js/langpack/icu-it-vflyd3m9_.json", "json_loader!metaserver/static/js/langpack/icu-ja.json": "static/metaserver/static/js/langpack/icu-ja-vfl6JKIwA.json", "json_loader!metaserver/static/js/langpack/icu-ko.json": "static/metaserver/static/js/langpack/icu-ko-vfliqi4JH.json", "json_loader!metaserver/static/js/langpack/icu-ms.json": "static/metaserver/static/js/langpack/icu-ms-vflfrDaqK.json", "json_loader!metaserver/static/js/langpack/icu-nb_NO.json": "static/metaserver/static/js/langpack/icu-nb_NO-vfloF6-xZ.json", "json_loader!metaserver/static/js/langpack/icu-nl_NL.json": "static/metaserver/static/js/langpack/icu-nl_NL-vflV2Y9za.json", "json_loader!metaserver/static/js/langpack/icu-pl.json": "static/metaserver/static/js/langpack/icu-pl-vflO3u_H-.json", "json_loader!metaserver/static/js/langpack/icu-pt_BR.json": "static/metaserver/static/js/langpack/icu-pt_BR-vflZx9YUt.json", "json_loader!metaserver/static/js/langpack/icu-ru.json": "static/metaserver/static/js/langpack/icu-ru-vfl1TbeBp.json", "json_loader!metaserver/static/js/langpack/icu-sv_SE.json": "static/metaserver/static/js/langpack/icu-sv_SE-vflq-z-Fs.json", "json_loader!metaserver/static/js/langpack/icu-th_TH.json": "static/metaserver/static/js/langpack/icu-th_TH-vflfbH6k9.json", "json_loader!metaserver/static/js/langpack/icu-uk_UA.json": "static/metaserver/static/js/langpack/icu-uk_UA-vflj-DvNQ.json", "json_loader!metaserver/static/js/langpack/icu-xx_AC.json": "static/metaserver/static/js/langpack/icu-xx_AC-vflST8SVY.json", "json_loader!metaserver/static/js/langpack/icu-xx_AE.json": "static/metaserver/static/js/langpack/icu-xx_AE-vflVwdr3j.json", "json_loader!metaserver/static/js/langpack/icu-xx_HA.json": "static/metaserver/static/js/langpack/icu-xx_HA-vflYiD2Dq.json", "json_loader!metaserver/static/js/langpack/icu-xx_LS.json": "static/metaserver/static/js/langpack/icu-xx_LS-vflqEK5lE.json", "json_loader!metaserver/static/js/langpack/icu-xx_RL.json": "static/metaserver/static/js/langpack/icu-xx_RL-vfl3pGz8C.json", "json_loader!metaserver/static/js/langpack/icu-zh_CN.json": "static/metaserver/static/js/langpack/icu-zh_CN-vflDIaxPh.json", "json_loader!metaserver/static/js/langpack/icu-zh_TW.json": "static/metaserver/static/js/langpack/icu-zh_TW-vflf1_VlL.json"}, "bundles": {}, "map": {"*": {"metaserver/static/js/langpack": "json_loader!metaserver/static/js/langpack/icu-en.json", "metaserver/static/js/file_viewer/edison/error_pages/generic_error": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_error_pages_generic_error", "metaserver/static/js/core/exception": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception", "metaserver/static/js/core/exception_reporter": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception_reporter", "js/edison/edison": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison", "js/data_modules/stormcrow": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_data_modules_stormcrow", "metaserver/static/js/edison/init_edison_page": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_init_edison_page", "js/edison/edison_react_page": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_edison_react_page", "react": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react", "react-dom": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom", "react-next": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-next", "react-dom-next": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom-next", "metaserver/static/js/modules/constants/contacts": "data_module!metaserver/static/js/modules/constants/contacts", "metaserver/static/js/modules/constants/fingerprintjs_constants": "data_module!metaserver/static/js/modules/constants/fingerprintjs_constants", "metaserver/static/js/modules/constants/locales": "data_module!metaserver/static/js/modules/constants/locales", "metaserver/static/js/modules/constants/login_and_register": "data_module!metaserver/static/js/modules/constants/login_and_register", "metaserver/static/js/modules/constants/search": "data_module!metaserver/static/js/modules/constants/search", "metaserver/static/js/modules/constants/sharing": "data_module!metaserver/static/js/modules/constants/sharing", "metaserver/static/js/modules/constants/time": "data_module!metaserver/static/js/modules/constants/time", "metaserver/static/js/modules/constants/viewer": "data_module!metaserver/static/js/modules/constants/viewer", "metaserver/static/js/modules/constants/web_experience_constants": "data_module!metaserver/static/js/modules/constants/web_experience_constants"}, "metaserver/static/js/core/exception_info": {"metaserver/static/js/langpack": "json_loader!metaserver/static/js/langpack/icu-en.json", "metaserver/static/js/file_viewer/edison/error_pages/generic_error": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_error_pages_generic_error", "metaserver/static/js/core/exception": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception", "metaserver/static/js/core/exception_reporter": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_core_exception_reporter", "js/edison/edison": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison", "js/data_modules/stormcrow": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_data_modules_stormcrow", "metaserver/static/js/edison/init_edison_page": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_init_edison_page", "js/edison/edison_react_page": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/e_edison_edison_react_page", "react": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react", "react-dom": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom", "react-next": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-next", "react-dom-next": "atlas/file_viewer/shared_link_generic_error_bundle_amd/dist/react-dom-next", "metaserver/static/js/modules/constants/contacts": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/contacts", "metaserver/static/js/modules/constants/fingerprintjs_constants": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/fingerprintjs_constants", "metaserver/static/js/modules/constants/locales": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/locales", "metaserver/static/js/modules/constants/login_and_register": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/login_and_register", "metaserver/static/js/modules/constants/search": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/search", "metaserver/static/js/modules/constants/sharing": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/sharing", "metaserver/static/js/modules/constants/time": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/time", "metaserver/static/js/modules/constants/viewer": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/viewer", "metaserver/static/js/modules/constants/web_experience_constants": "unreadable_jsconst_loader!metaserver/static/js/modules/constants/web_experience_constants"}}, "shim": {}, "nodeIdCompat": true}; -window.addRequireLoadCallback(function() { - window.configureRequire(requireConfig, { - sentryOptions: {"dsn":"https://015d5ce7dd3142cd8fca094a50adbf69@d.dropbox.com/4505546831036416","release":"978f2b900a8e41d9ac01c7d87480d86d2bbb4cf3","environment":"canary","tags":{"edison_page_name":"shared_link_generic_error","browser_id":"5763630696314505067488660972944034910"}}, - requireFallbackBaseUrl: "https://www.dropboxstatic.com/", - langpack: {locale: "en"}, - useReactNext: false , - exceptionExtras: {"page_repo_rev":"978f2b900a8e41d9ac01c7d87480d86d2bbb4cf3","yaps_deployment":"canary","yaps_project":"edison_atlasservlet.file_viewer-edison","page_locale":"en","page_load_timestamp":1711501606}, - exceptionTags: ["is_edison","browser-id:5763630696314505067488660972944034910","edison_page_name:shared_link_generic_error","edison_atlasservlet:file_viewer","edison_atlasservlet:file_viewer:canary"], - initDataBase64: "EiBmMmJhZDQxOTE5MzY0MGQwODQxN2M0NmJkMTM4NzBhORim4o2wBiJxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTA6SQolNTc2MzYzMDY5NjMxNDUwNTA2NzQ4ODY2MDk3Mjk0NDAzNDkxMBIgMDQ1NjA4ZWVkYWYyZGRhMDZhNzlhMDhmOGViOTBjNWVCJmVkaXNvbl9hdGxhc3NlcnZsZXQuZmlsZV92aWV3ZXItZWRpc29uSgZjYW5hcnlSGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3JaAmVuYig5NzhmMmI5MDBhOGU0MWQ5YWMwMWM3ZDg3NDgwZDg2ZDJiYmI0Y2YzalIKIXgtZHJvcGJveC1jbGllbnQteWFwcy1hdHRyaWJ1dGlvbhItZWRpc29uX2F0bGFzc2VydmxldC5maWxlX3ZpZXdlci1lZGlzb246Y2FuYXJ5cgQKABIAehNzaGFyZWRfY29udGVudF9saW5rggEoc2hhcmVkX2NvbnRlbnRfbGlua192aWV3X2ZpbGVfYW5kX2ZvbGRlcg==" - }, []); - var start = performance.now(); - window.require(["metaserver/static/js/edison/init_edison_page"], function(mod) { - window.EDISON_METRICS_INIT_PAGE_MODULE_LOAD_TIME = performance.now() - start; - mod.initPage("EgtmaWxlX3ZpZXdlchoZc2hhcmVkX2xpbmtfZ2VuZXJpY19lcnJvcjI1L3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3pKE3NoYXJlZF9jb250ZW50X2xpbmtSKHNoYXJlZF9jb250ZW50X2xpbmtfdmlld19maWxlX2FuZF9mb2xkZXJiKDk3OGYyYjkwMGE4ZTQxZDlhYzAxYzdkODc0ODBkODZkMmJiYjRjZjNqKDQ2Nzc0ZWMzYTViYjIwZjA3NGM0MTRiZDhmYzkyOWM2ZDllNDhkMTNwAXoGY2FuYXJ5sgEJL2R3czIvcnBjygFBbWV0YXNlcnZlci9zdGF0aWMvanMvZmlsZV92aWV3ZXIvZWRpc29uL2Vycm9yX3BhZ2VzL2dlbmVyaWNfZXJyb3LiAXFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MPABAYgCAZACAbICIDA0NTYwOGVlZGFmMmRkYTA2YTc5YTA4ZjhlYjkwYzVl"); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - - window.require( - ["js/edison/edison", "js/edison/edison_react_page", "metaserver/static/js/file_viewer/edison/error_pages/generic_error"], - function(edisonModule, edisonReactPageModule, mod) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonReactPageModule.render(mod, false , "", false ); - }); - } - ); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - if (edisonModule.Edison.markServerSidePrefetchStarted) { - edisonModule.Edison.markServerSidePrefetchStarted(["Es4CCiN3ZWJfcGxhdGZvcm0uV2ViUGxhdGZvcm1FZGlzb25GZXRjaBITRWRpc29uRGV2VG9vbHNGZXRjaBrpARLmAVJxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTBacWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wKgtmaWxlX3ZpZXdlcjIZc2hhcmVkX2xpbmtfZ2VuZXJpY19lcnJvcg==","Es8CCixzdXBlcl9hZG1pbl9hbmRfZGVwbG95bWVudC5FZGlzb25JZGxlVGltZW91dBILSWRsZVRpbWVvdXQa6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=","Eu0CCjpwcml2YWN5X2NvbnNlbnRfZWRpc29uLlByaXZhY3lDb25zZW50RWRpc29uUHJlZmV0Y2hTZXJ2aWNlEhtQcml2YWN5Q29uc2VudFByb3BzUHJlZmV0Y2ga6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=","Es0CCiN3ZWJfcGxhdGZvcm0uV2ViUGxhdGZvcm1FZGlzb25GZXRjaBISRWRpc29uVG9wTWVudUZldGNoGukBEuYBUnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MFpxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTAqC2ZpbGVfdmlld2VyMhlzaGFyZWRfbGlua19nZW5lcmljX2Vycm9y","EtgCCit1c2VyX3N1cnZleS5FZGlzb25Vc2VyU3VydmV5UHJlZmV0Y2hTZXJ2aWNlEhVFZGlzb25Vc2VyU3VydmV5RmV0Y2ga6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=","Es4CCiZ1eF9hbmFseXRpY3MuVXhBbmFseXRpY3NFZGlzb25TZXJ2aWNlchIQVXhBbmFseXRpY3NGZXRjaBrpARLmAVJxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTBacWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wKgtmaWxlX3ZpZXdlcjIZc2hhcmVkX2xpbmtfZ2VuZXJpY19lcnJvcg=="]); - } - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/time", "json", "{\"DATETIME_FORMAT\": \"M/d/yyyy h:mm a\", \"TIMEZONE_OFFSET\": 0, \"TIMEZONE\": \"\", \"DATE_FORMAT\": \"M/d/yyyy\", \"TIME_FORMAT\": \"h:mm a\"}"); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/viewer", "json", "{\"DEFAULT_ROOT_NAME\": \"Dropbox\", \"PERSONAL_ROLE_STRING\": \"Personal\", \"_viewer_properties\": {\"_user_data\": [], \"is_team_assume_user_session\": false, \"is_assume_user_session\": false}, \"prompt_ha_hiding\": true, \"LOCALE\": \"US\"}"); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/locales", "json", "{\"LIST_OF_LOCALES_WITH_INTERNAL\": [{\"localeCode\": \"id\", \"localeName\": \"Bahasa Indonesia\", \"decorator\": \"\"}, {\"localeCode\": \"ms\", \"localeName\": \"Bahasa Malaysia\", \"decorator\": \"\"}, {\"localeCode\": \"da_DK\", \"localeName\": \"Dansk\", \"decorator\": \"\"}, {\"localeCode\": \"de\", \"localeName\": \"Deutsch\", \"decorator\": \"\"}, {\"localeCode\": \"en_GB\", \"localeName\": \"English (United Kingdom)\", \"decorator\": \"\"}, {\"localeCode\": \"en\", \"localeName\": \"English (United States)\", \"decorator\": \"\"}, {\"localeCode\": \"es_ES\", \"localeName\": \"Espa\\u00f1ol (Espa\\u00f1a)\", \"decorator\": \"\"}, {\"localeCode\": \"es\", \"localeName\": \"Espa\\u00f1ol (Latinoam\\u00e9rica)\", \"decorator\": \"\"}, {\"localeCode\": \"fr_CA\", \"localeName\": \"Fran\\u00e7ais (Canada)\", \"decorator\": \"\"}, {\"localeCode\": \"fr\", \"localeName\": \"Fran\\u00e7ais (France)\", \"decorator\": \"\"}, {\"localeCode\": \"it\", \"localeName\": \"Italiano\", \"decorator\": \"\"}, {\"localeCode\": \"nl_NL\", \"localeName\": \"Nederlands\", \"decorator\": \"\"}, {\"localeCode\": \"nb_NO\", \"localeName\": \"Norsk (bokm\\u00e5l)\", \"decorator\": \"\"}, {\"localeCode\": \"pl\", \"localeName\": \"Polski\", \"decorator\": \"\"}, {\"localeCode\": \"pt_BR\", \"localeName\": \"Portugu\\u00eas (Brasil)\", \"decorator\": \"\"}, {\"localeCode\": \"ru\", \"localeName\": \"P\\u0443\\u0441\\u0441\\u043a\\u0438\\u0439\", \"decorator\": \"\"}, {\"localeCode\": \"sv_SE\", \"localeName\": \"Svenska\", \"decorator\": \"\"}, {\"localeCode\": \"uk_UA\", \"localeName\": \"\\u0423\\u043a\\u0440\\u0430\\u0457\\u043d\\u0441\\u044c\\u043a\\u0430\", \"decorator\": \"\"}, {\"localeCode\": \"th_TH\", \"localeName\": \"\\u0e44\\u0e17\\u0e22\", \"decorator\": \"\"}, {\"localeCode\": \"zh_CN\", \"localeName\": \"\\u4e2d\\u6587\\uff08\\u7b80\\u4f53\\uff09\", \"decorator\": \"\"}, {\"localeCode\": \"zh_TW\", \"localeName\": \"\\u4e2d\\u6587\\uff08\\u7e41\\u9ad4\\uff09\", \"decorator\": \"\"}, {\"localeCode\": \"ja\", \"localeName\": \"\\u65e5\\u672c\\u8a9e\", \"decorator\": \"\"}, {\"localeCode\": \"ko\", \"localeName\": \"\\ud55c\\uad6d\\uc5b4\", \"decorator\": \"\"}], \"LIST_OF_LOCALES_WITHOUT_INTERNAL\": [{\"localeCode\": \"id\", \"localeName\": \"Bahasa Indonesia\", \"decorator\": \"\"}, {\"localeCode\": \"ms\", \"localeName\": \"Bahasa Malaysia\", \"decorator\": \"\"}, {\"localeCode\": \"da_DK\", \"localeName\": \"Dansk\", \"decorator\": \"\"}, {\"localeCode\": \"de\", \"localeName\": \"Deutsch\", \"decorator\": \"\"}, {\"localeCode\": \"en_GB\", \"localeName\": \"English (United Kingdom)\", \"decorator\": \"\"}, {\"localeCode\": \"en\", \"localeName\": \"English (United States)\", \"decorator\": \"\"}, {\"localeCode\": \"es_ES\", \"localeName\": \"Espa\\u00f1ol (Espa\\u00f1a)\", \"decorator\": \"\"}, {\"localeCode\": \"es\", \"localeName\": \"Espa\\u00f1ol (Latinoam\\u00e9rica)\", \"decorator\": \"\"}, {\"localeCode\": \"fr_CA\", \"localeName\": \"Fran\\u00e7ais (Canada)\", \"decorator\": \"\"}, {\"localeCode\": \"fr\", \"localeName\": \"Fran\\u00e7ais (France)\", \"decorator\": \"\"}, {\"localeCode\": \"it\", \"localeName\": \"Italiano\", \"decorator\": \"\"}, {\"localeCode\": \"nl_NL\", \"localeName\": \"Nederlands\", \"decorator\": \"\"}, {\"localeCode\": \"nb_NO\", \"localeName\": \"Norsk (bokm\\u00e5l)\", \"decorator\": \"\"}, {\"localeCode\": \"pl\", \"localeName\": \"Polski\", \"decorator\": \"\"}, {\"localeCode\": \"pt_BR\", \"localeName\": \"Portugu\\u00eas (Brasil)\", \"decorator\": \"\"}, {\"localeCode\": \"ru\", \"localeName\": \"P\\u0443\\u0441\\u0441\\u043a\\u0438\\u0439\", \"decorator\": \"\"}, {\"localeCode\": \"sv_SE\", \"localeName\": \"Svenska\", \"decorator\": \"\"}, {\"localeCode\": \"uk_UA\", \"localeName\": \"\\u0423\\u043a\\u0440\\u0430\\u0457\\u043d\\u0441\\u044c\\u043a\\u0430\", \"decorator\": \"\"}, {\"localeCode\": \"th_TH\", \"localeName\": \"\\u0e44\\u0e17\\u0e22\", \"decorator\": \"\"}, {\"localeCode\": \"zh_CN\", \"localeName\": \"\\u4e2d\\u6587\\uff08\\u7b80\\u4f53\\uff09\", \"decorator\": \"\"}, {\"localeCode\": \"zh_TW\", \"localeName\": \"\\u4e2d\\u6587\\uff08\\u7e41\\u9ad4\\uff09\", \"decorator\": \"\"}, {\"localeCode\": \"ja\", \"localeName\": \"\\u65e5\\u672c\\u8a9e\", \"decorator\": \"\"}, {\"localeCode\": \"ko\", \"localeName\": \"\\ud55c\\uad6d\\uc5b4\", \"decorator\": \"\"}], \"FR_CA_LOCALE_ENABLED\": true}"); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/search", "json", "{\"SEARCH_WEB_MAIN_KIEV_ENABLED\": false, \"SEARCH_WEB_MAIN2_KIEV_ENABLED\": false, \"SEARCH_EXPERIMENT_ZERO_STATE_DROPDOWN_VARIANT\": \"OFF\", \"SEARCH_WEB_REDESIGN_2023_VARIANT\": \"OFF\", \"SEARCH_ALPHA_NATURAL_LANGUAGE_SEARCH_VARIANT\": \"OFF\", \"SEARCH_WEB_AI_CONTROL_CENTER_VARIANT\": \"OFF\", \"SEARCH_WEB_AI_EARLY_ADOPTER_ENABLED\": false, \"HTTP3_SUPPORT_ENABLED\": false}"); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedPrefetch("Es8CCixzdXBlcl9hZG1pbl9hbmRfZGVwbG95bWVudC5FZGlzb25JZGxlVGltZW91dBILSWRsZVRpbWVvdXQa6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=", "", false ); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedPrefetch("Es4CCiZ1eF9hbmFseXRpY3MuVXhBbmFseXRpY3NFZGlzb25TZXJ2aWNlchIQVXhBbmFseXRpY3NGZXRjaBrpARLmAVJxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTBacWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wKgtmaWxlX3ZpZXdlcjIZc2hhcmVkX2xpbmtfZ2VuZXJpY19lcnJvcg==", "CAESpSh7InJlcXVlc3RJZCI6ICJmMmJhZDQxOTE5MzY0MGQwODQxN2M0NmJkMTM4NzBhOSIsICJvcmdSZWZlcnJlciI6ICIiLCAiaHR0cFJlZmVycmVyIjogIiIsICJwcmV2aW91c1VybCI6ICIiLCAidmlzaXRJZCI6ICIiLCAiZXZlbnRfbmFtZXMiOiBbImdvb2dsZV9sb2dpbl9zdGFydCIsICJ0bF9wYWdlX3ZpZXciLCAiZW1haWxfc2lnbnVwX3N1Y2NlZWRlZCIsICJkb2N1bWVudF9vcGVuIiwgInByb2R1Y3QiLCAiY2xpY2tfc291cmNlIiwgImZpbmFsX2hlYXJ0YmVhdCIsICJtb2RhbF9jbG9zZSIsICJzaWFfbG9naW5fcmVxdWlyZXNfdHdvX2ZhY3RvciIsICJhZG1pbl9ob21lX2NsaWVudF9iYW5uZXJfY2xpY2tlZCIsICJhcHBfbmFtZSIsICJlbWFpbF9sb2dpbl9mYWlsZWQiLCAicGFyZW50X3Byb2R1Y3QiLCAic2lhX2xvZ2luX3N0YXJ0IiwgInV4YV9kZWJ1Z192ZXJzaW9uIiwgImRvY3VtZW50X2Nsb3NlIiwgImRyb3Bib3hfZG93bmxvYWQiLCAidG90YWxfdGltZSIsICJsb2dpbl9tb2RhbF9kaXNtaXNzZWQiLCAiZ29vZ2xlX2xvZ2luX2ZhaWxlZCIsICJzY3JpcHRfaWQiLCAiYmZjYWNoZV9lbGlnaWJsZSIsICJwdXJjaGFzZV9wcmljZSIsICJzaWdudXBfbW9kYWxfZGlzbWlzc2VkIiwgImhzX2FjdGlvbiIsICJnb29nbGVfbG9naW5fc3VjY2VlZGVkIiwgImVtYWlsX2xvZ2luX3JlZGlyZWN0IiwgImVtYWlsX3NwbGl0X3NpZ251cF9jb250aW51ZSIsICJoc19jYXRlZ29yeSIsICJiaWxsaW5nX2N5Y2xlIiwgImxpbmtfbm9fc2Vzc2lvbl9zdG9yYWdlIiwgImdvb2dsZV9zaWdudXBfc3RhcnQiLCAiYWRvYmVfdGFyZ2V0X3ZhcmlhbnRzIiwgImVsZW1lbnRfY2xpY2siLCAibGlua19jbGljayIsICJjbGlja190b29sdGlwX3NpZ25pbl9lcCIsICJkaWFsb2dfb3BlbiIsICJzaWFfbG9naW5fc3VjY2VlZGVkIiwgInNpZ251cF9tb2RhbF9zaG93biIsICJ1eGFfZXZlbnRfY2xhc3NpZmljYXRpb25fbGV2ZWwiLCAiZW1haWxfc2lnbnVwX2ZhaWxlZCIsICJmb3JtX2ZpZWxkX2NoYW5nZSIsICJhZG1pbl9ob21lX2NsaWVudF9iYW5uZXJfc2hvd24iLCAiZHJvcGJveF9yZXN0YXJ0X2Rvd25sb2FkIiwgIm1vZGFsX29wZW4iLCAiZ29vZ2xlX3NpZ251cF9mYWlsZWQiLCAicGFnZV92aWV3X29yaWdpbiIsICJzaWFfbG9naW5fcmVxdWlyZXNfcGFzc3dvcmQiLCAiY2xpY2tfYmFubmVyX3NpZ25pbl9lcCIsICJtYXJrZXRpbmdfdHJhY2tlcl9pbmNsdXNpb25fbWV0aG9kIiwgImVtYWlsX2xvZ2luX3N0YXJ0IiwgInNjcm9sbF9ldmVudCIsICJsaWNlbnNlcyIsICJzaG93bl9iYW5uZXJfc2lnbmluX2VwIiwgImVtYWlsX3NpZ251cF9zdGFydCIsICJzY3JpcHRfdXJsIiwgIndlYl9yZWRlc2lnbiIsICJkZXZpY2VfaWQiLCAiaWZyYW1lX3VyaSIsICJpbnN0YW5jZV9ldmVudF9jb3VudCIsICJsb2dpbl9tb2RhbF9zaG93biIsICJ1eC1hbmFseXRpY3MiLCAiYWRtaW5faG9tZV9jbGllbnRfYmFubmVyX2Rpc21pc3NlZCIsICJpbnN0YW5jZV9pbml0X3RzIiwgImhlYXJ0YmVhdCIsICJzaG93bl90b29sdGlwX3NpZ25pbl9lcCIsICJzY2FuX3N1Y2Nlc3MiLCAiZWxlbWVudF9zaG93biIsICJjdXJyZW5jeV9jb2RlIiwgInBhZ2VfdmlldyIsICJ0bF90ZW1wbGF0ZV9yZWRpcmVjdCIsICJuYXZpZ2F0aW9uX3R5cGUiLCAiaHNfbGFiZWwiLCAidXhhX2luY2x1c2lvbl9tZXRob2QiLCAiZ29vZ2xlX3NpZ251cF9zdWNjZWVkZWQiLCAidHlwZSIsICJlbWFpbF9sb2dpbl9zdWNjZWVkZWQiLCAiZW1haWxfbG9naW5fcmVxdWlyZXNfdHdvX2ZhY3RvciIsICJyZWRpcmVjdF90b19kcm9wYm94X3Ntb2RlX3N0b3JlX3BhZ2UiLCAic2lhX2xvZ2luX2ZhaWxlZCIsICJlbGVtZW50X2hpZGUiLCAic2lnbnVwX3NvdXJjZSIsICJyZWRpcmVjdF9zdWNjZXNzIiwgImRpYWxvZ19jbG9zZSIsICJnb29nbGVfbG9naW5fcmVxdWlyZXNfdHdvX2ZhY3RvciJdLCAibm9fcGlpX2NvbmZpZ192YXJpYWJsZXMiOiBbInZlcnRpY2FsX29mZnNldCIsICJhcHBfbmFtZSIsICJjbGllbnRfZXZlbnRfaWQiLCAiZWxlbWVudF9pZCIsICJ1eGFfZXZlbnRfY2xhc3NpZmljYXRpb25fbGV2ZWwiLCAiZXZlbnRfdHMiLCAibGlua19pZCIsICJwYXJhbV9hZCIsICJwYXJhbV9jYW1wIiwgInBhcmFtX2Rlc2t0b3BfbG9nZ2luZ19pZCIsICJwYXJhbV9mYmNsaWQiLCAicGFyYW1fZ2NsaWQiLCAicGFyYW1fa3ciLCAicGFyYW1fbXNjbGtpZCIsICJwYXJhbV9uZXQiLCAicGFyYW1fb3FhIiwgInBhcmFtX3RmbyIsICJwYXJhbV90ayIsICJwYXJhbV90cmlnZ2VyIiwgInBhcmFtX3V0bV9jYW1wYWlnbiIsICJwYXJhbV91dG1fY29udGVudCIsICJwYXJhbV91dG1fbWVkaXVtIiwgInBhcmFtX3V0bV9zb3VyY2UiLCAicGFyYW1fdXRtX3Rlcm0iLCAicG9zaXRpb25fcGN0X1giLCAicG9zaXRpb25fcGN0X1kiLCAidXhhX3YiLCAidXhhX2RlYnVnX3ZlcnNpb24iLCAidmFyaWFudHMiLCAiYWRvYmVfdGFyZ2V0X3ZhcmlhbnRzIiwgImluc3RhbmNlX2V2ZW50X2NvdW50IiwgImluc3RhbmNlX2luaXRfdHMiLCAicHJvZHVjdCIsICJwYXJlbnRfcHJvZHVjdCIsICJsaWNlbnNlcyIsICJ0eXBlIiwgInB1cmNoYXNlX3ByaWNlIiwgImN1cnJlbmN5X2NvZGUiLCAiYmlsbGluZ19jeWNsZSIsICJoc19hY3Rpb24iLCAiaHNfY2F0ZWdvcnkiLCAiaHNfbGFiZWwiLCAibWFya2V0aW5nX3RyYWNrZXJfaW5jbHVzaW9uX21ldGhvZCIsICJ1eGFfaW5jbHVzaW9uX21ldGhvZCIsICJuYXZpZ2F0aW9uX3R5cGUiLCAiZWxlbWVudF9zaG93bl9kdXJhdGlvbl9tcyJdLCAic2hvdWxkQmVTZW50VG9NYXJrZXRpbmdUcmFja2VyVmFyaWFibGVzIjogWyJ2ZXJ0aWNhbF9vZmZzZXQiLCAiYXBwX25hbWUiLCAiY2xpZW50X2V2ZW50X2lkIiwgImVsZW1lbnRfaWQiLCAidXhhX2V2ZW50X2NsYXNzaWZpY2F0aW9uX2xldmVsIiwgImV2ZW50X3RzIiwgImxpbmtfaWQiLCAicGFyYW1fYWQiLCAicGFyYW1fY2FtcCIsICJwYXJhbV9kZXNrdG9wX2xvZ2dpbmdfaWQiLCAicGFyYW1fZmJjbGlkIiwgInBhcmFtX2djbGlkIiwgInBhcmFtX2t3IiwgInBhcmFtX21zY2xraWQiLCAicGFyYW1fbmV0IiwgInBhcmFtX29xYSIsICJwYXJhbV90Zm8iLCAicGFyYW1fdGsiLCAicGFyYW1fdHJpZ2dlciIsICJwYXJhbV91dG1fY2FtcGFpZ24iLCAicGFyYW1fdXRtX2NvbnRlbnQiLCAicGFyYW1fdXRtX21lZGl1bSIsICJwYXJhbV91dG1fc291cmNlIiwgInBhcmFtX3V0bV90ZXJtIiwgInBvc2l0aW9uX3BjdF9YIiwgInBvc2l0aW9uX3BjdF9ZIiwgInV4YV92IiwgInV4YV9kZWJ1Z192ZXJzaW9uIiwgInZhcmlhbnRzIiwgImFkb2JlX3RhcmdldF92YXJpYW50cyIsICJpbnN0YW5jZV9ldmVudF9jb3VudCIsICJpbnN0YW5jZV9pbml0X3RzIiwgInByb2R1Y3QiLCAicGFyZW50X3Byb2R1Y3QiLCAibGljZW5zZXMiLCAidHlwZSIsICJwdXJjaGFzZV9wcmljZSIsICJjdXJyZW5jeV9jb2RlIiwgImJpbGxpbmdfY3ljbGUiLCAiaHNfYWN0aW9uIiwgImhzX2NhdGVnb3J5IiwgImhzX2xhYmVsIiwgIm1hcmtldGluZ190cmFja2VyX2luY2x1c2lvbl9tZXRob2QiLCAidXhhX2luY2x1c2lvbl9tZXRob2QiLCAibmF2aWdhdGlvbl90eXBlIiwgImVsZW1lbnRfc2hvd25fZHVyYXRpb25fbXMiXSwgImNvbmZpZ1RpbWUiOiAxNzExNTAxNjA3NDE1LCAiaXNJbnRlcm5hbElwIjogZmFsc2UsICJpc1VzZXJEcm9wYm94QWRtaW4iOiBmYWxzZSwgImFuYWx5dGljc0lkIjogIkFBQ1NFOXV0WDl1dk9VQUpLcUtDZHdQRkQ1SkFSM0RyS3JFbXg0c0ZBcjBjWHciLCAiZXhwRXZlbnRzVG9FeHBJZE1hcCI6IHsibW91c2V1cF9lbGVtZW50X2NsaWNrIjogIkNHSS0xMTYwIiwgInBhZ2VfZnJlZXplIjogIkNHSS05MzciLCAicGFnZV9yZXN1bWUiOiAiQ0dJLTkzNyIsICJzcGFfcGFnZV92aWV3IjogIkdUWC00MSIsICJkZWxheWVkX3BhZ2Vfdmlld193aXRoX2xhdGVfbWV0YV90YWciOiAiR1RYLTEyMiIsICJwcml2YWN5X2NvbnNlbnRfaWZyYW1lX2xvYWRlZCI6ICJDR0ktMTQ1IiwgInByaXZhY3lfY29uc2VudF9zY3JpcHRfbG9hZGVkIjogIkNHSS0xNDUiLCAicHJpdmFjeV9jb25zZW50X3NjcmlwdF9sb2FkX2Vycm9yIjogIkNHSS0xNDUiLCAiY29udmVyc2lvbkRhdGFSZWFkeSI6ICJDR0ktNjA3IiwgImxlZ2FjeV9oc19hbmFseXRpY3NfZXZlbnQiOiAiQ0dJLTU1MyIsICJtYXJrZXRpbmdfdHJhY2tlcl9yZWFkeV9mb3JfdXhhIjogIkNHSS0yMTgifSwgImV4cERhdGFGaWVsZHNUb0V4cElkTWFwIjogeyJhcHBfbmFtZSI6ICJDR0ktMTUyMiIsICJkZXZpY2VfaWQiOiAiR1JXQUNRLTU4NjciLCAidXhhX2V2ZW50X2NsYXNzaWZpY2F0aW9uX2xldmVsIjogIkNHSS03NDQiLCAic2lnbnVwX3NvdXJjZSI6ICJTSEFRLTIyMiIsICJ1eGFfZGVidWdfdmVyc2lvbiI6ICJDR0ktMTUxMSIsICJ3ZWJfcmVkZXNpZ24iOiAiQ0VYUC0xOTk0IiwgImFkb2JlX3RhcmdldF92YXJpYW50cyI6ICJHVFgtMTIyIiwgImluc3RhbmNlX2V2ZW50X2NvdW50IjogIkNHSS04MiIsICJpbnN0YW5jZV9pbml0X3RzIjogIkNHSS05NiIsICJpZnJhbWVfdXJpIjogIkNHSS0xNDUiLCAiY2xpY2tfc291cmNlIjogIkNHSS0xMTYwIiwgInNjcmlwdF9pZCI6ICJDR0ktMTQ1IiwgInNjcmlwdF91cmwiOiAiQ0dJLTE0NSIsICJ0b3RhbF90aW1lIjogIkNHSS0xNDUiLCAicHJvZHVjdCI6ICJDR0ktNjA3IiwgInBhcmVudF9wcm9kdWN0IjogIkNHSS02MDciLCAibGljZW5zZXMiOiAiQ0dJLTYwNyIsICJ0eXBlIjogIkNHSS02MDciLCAicHVyY2hhc2VfcHJpY2UiOiAiQ0dJLTYwNyIsICJjdXJyZW5jeV9jb2RlIjogIkNHSS02MDciLCAiYmlsbGluZ19jeWNsZSI6ICJDR0ktNjA3IiwgImhzX2FjdGlvbiI6ICJDR0ktNTUzIiwgImhzX2NhdGVnb3J5IjogIkNHSS01NTMiLCAiaHNfbGFiZWwiOiAiQ0dJLTU1MyIsICJtYXJrZXRpbmdfdHJhY2tlcl9pbmNsdXNpb25fbWV0aG9kIjogIkNHSS04MjkiLCAidXhhX2luY2x1c2lvbl9tZXRob2QiOiAiQ0dJLTQ4NiIsICJiZmNhY2hlX2VsaWdpYmxlIjogIkNHSS04NzgiLCAibmF2aWdhdGlvbl90eXBlIjogIkNHSS05MzkiLCAicGFnZV92aWV3X29yaWdpbiI6ICJDR0ktMTM4NiJ9LCAiaW5jbHVzaW9uTWV0aG9kIjogIkVESVNPTiIsICJlbnRpdGxlZEFwcHMiOiBbImRhc2giLCAidGVzdF9hcHAiXX0=", false ); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedPrefetch("Eu0CCjpwcml2YWN5X2NvbnNlbnRfZWRpc29uLlByaXZhY3lDb25zZW50RWRpc29uUHJlZmV0Y2hTZXJ2aWNlEhtQcml2YWN5Q29uc2VudFByb3BzUHJlZmV0Y2ga6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=", "ChNjb25zZW50LmRyb3Bib3guY29tEgJVUxgB", false ); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedPrefetch("EtgCCit1c2VyX3N1cnZleS5FZGlzb25Vc2VyU3VydmV5UHJlZmV0Y2hTZXJ2aWNlEhVFZGlzb25Vc2VyU3VydmV5RmV0Y2ga6QES5gFScWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wWnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MCoLZmlsZV92aWV3ZXIyGXNoYXJlZF9saW5rX2dlbmVyaWNfZXJyb3I=", "", false ); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedPrefetch("Es4CCiN3ZWJfcGxhdGZvcm0uV2ViUGxhdGZvcm1FZGlzb25GZXRjaBITRWRpc29uRGV2VG9vbHNGZXRjaBrpARLmAVJxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTBacWh0dHBzOi8vd3d3LmRyb3Bib3guY29tL3NjbC9maS82bm9oazJ1djg5cHVwZTh0amo5aWIvY2tfZGF0YV8wMTI0MjAyNC50YXIuZ3o/cmxrZXk9NThnanY1cmU2ZnVzejFzOWprOWZncHg5NSZkbD0wKgtmaWxlX3ZpZXdlcjIZc2hhcmVkX2xpbmtfZ2VuZXJpY19lcnJvcg==", "IhAxNzExNTAxNjA3NDIzMzc0", false ); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedPrefetch("Es0CCiN3ZWJfcGxhdGZvcm0uV2ViUGxhdGZvcm1FZGlzb25GZXRjaBISRWRpc29uVG9wTWVudUZldGNoGukBEuYBUnFodHRwczovL3d3dy5kcm9wYm94LmNvbS9zY2wvZmkvNm5vaGsydXY4OXB1cGU4dGpqOWliL2NrX2RhdGFfMDEyNDIwMjQudGFyLmd6P3Jsa2V5PTU4Z2p2NXJlNmZ1c3oxczlqazlmZ3B4OTUmZGw9MFpxaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2NsL2ZpLzZub2hrMnV2ODlwdXBlOHRqajlpYi9ja19kYXRhXzAxMjQyMDI0LnRhci5nej9ybGtleT01OGdqdjVyZTZmdXN6MXM5ams5ZmdweDk1JmRsPTAqC2ZpbGVfdmlld2VyMhlzaGFyZWRfbGlua19nZW5lcmljX2Vycm9y", "CrIHeyJ1c2VySWQiOiBudWxsLCAiaGlkZUluc3RhbGxMaW5rIjogZmFsc2UsICJtb2JpbGVVc2VBcHBVcmwiOiAiaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vZGwvaG9tZS9tb2JpbGU/YWRncm91cD1oZWFkZXJcdTAwMjZjYW1wYWlnbj1tb3dlYl9idXR0b25cdTAwMjZjcmVhdGl2ZT11c2VfYXBwXHUwMDI2bW9iaWxlX2FwcF9mYWxsYmFjaz1cdTAwMjZzcmM9bW9iaWxlLXdlYi1sb2dnZWQtaW4iLCAic2hvdWxkU2hvd0FkbWluVGFza3NNZW51IjogZmFsc2UsICJoZWxwSHJlZiI6ICJodHRwczovL3d3dy5kcm9wYm94LmNvbS9oZWxwIiwgImF1dG9tYXRpb25zTGlua1ZhcmlhbnQiOiAiT0ZGIiwgInNob3dJbnN0YWxsRXh0ZW5zaW9uTGluayI6IGZhbHNlLCAiaXNJbkV4dGVuc2lvbkJldGFIb2xkYmFja0dyb3VwIjogZmFsc2UsICJ3aGF0c05ld0V4cGVyaW1lbnRzIjogeyJ3aGF0c05ld1VwZGF0ZVZhcmlhbnQiOiAiUkVMRUFTRV8yMDIzXzEyXzE5IiwgIndoYXRzTmV3U3VyZmFjZUVuaGFuY2VtZW50VmFyaWFudCI6ICJPRkYifSwgImlzQWRtaW5JbnZpdGVCdXR0b25FbmFibGVkIjogZmFsc2UsICJpc1Vwc2VsbEludml0ZUJ1dHRvbkVuYWJsZWQiOiBmYWxzZSwgIndlYlJlZGVzaWduR2xvYmFsSGVhZGVyIjogIk9GRiIsICJpc0NzbVRlYW1Vc2VyIjogZmFsc2UsICJtYW5hZ2VBY2NvdW50TGlua1ZhcmlhbnQiOiAiT0ZGIiwgInRlYW1JbnZpdGVzUGFpbnRlZERvb3JUZXN0VmFyaWFudCI6ICJPRkYiLCAibG9jYWxlIjogImVuIiwgImNvdW50cnlDb2RlIjogIlVTIiwgImlzSW5kaXZpZHVhbFVwc2VsbEludml0ZUJ1dHRvbkVuYWJsZWQiOiBmYWxzZSwgImlzRnJlZVRlYW1DcmVhdGlvbkJ1dHRvbkVuYWJsZWQiOiBmYWxzZSwgIm1vbmV4UGxzQ29udGFjdFNhbGVzQnV0dG9uVmFyaWFudCI6ICJPRkYiLCAiZGVza3RvcENvcHlSZWZyZXNoVmFyaWFudCI6ICJPRkYifQ==", false ); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/contacts", "json", "{\"LEGACY_CACHE_LIMIT\": \"OFF\", \"MERGE_SEARCH_ALLOWED\": {}}"); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/sharing", "json", "{\"GOLDEN_GATE\": {\"HAS_CONTENT_MANAGER_AND_SUPER_ADMIN\": {}, \"HAS_CONTENT_MANAGER_CDM\": {}, \"HAS_CONTENT_MANAGER_CDM_IN_TSD\": {}, \"HAS_NEW_OWNERSHIP_MODEL\": {}, \"CAN_RESTORE_FOLDERS_IN_CM\": {}, \"SHARING_TOTAL_LIMIT\": 1000}, \"SHARING_EXPERIMENTS\": {\"FIX_MAX_ACCOUNT_BATCH_SIZE\": false, \"MINI_MODAL_LINK_AUDIENCE_VARIANT\": \"OFF\", \"SHARED_LINK_ATTRIBUTION_TRACKING\": \"OFF\"}, \"SHARING_MODAL\": {\"SHOW_UPGRADE_TO_BIZ_BANNER\": {}}, \"TRUELINK\": {\"TRUELINK_BROWSE_LINK_ICON\": {}, \"NO_COMMENT_ENABLED\": {}}, \"ShareTibActionOriginType\": {\"BROWSE_FILE_ROW\": 1, \"FILE_ROW_SHARE_MENU\": 2, \"PREVIEW_PAGE\": 3, \"NOTIFICATION_WEB\": 4, \"RECENTS\": 5, \"SHARE\": 6, \"GRANT_ACCESS\": 8, \"DESKTOP_CLIENT\": 9, \"WIZARD\": 10, \"OFFICE_INTEGRATION\": 11, \"LEGACY_BROWSE\": 12, \"SHARE_LINK_MODAL\": 13, \"BROWSE_SHARED_FOLDER_BANNER\": 14, \"BROWSE_GLOBAL_ACTIONS\": 15, \"EVENTS_PAGE\": 16, \"BROWSE_FILE_ACTIONS\": 17, \"CONTENT_MANAGER\": 18, \"PARENT_FOLDER_MODAL\": 19, \"OUT_OF_QUOTA_MODAL\": 20, \"LINKS_PAGE\": 21, \"PREVIEW_PAGE_FACEPILE\": 22, \"BROWSE_FILE_FACEPILE\": 23, \"SHARE_PAGE_FROM_EMAIL\": 24, \"SHARE_PAGE_FROM_NOTIFICATION_WEB\": 25, \"COPY_SCL_LINK_MODAL\": 26, \"BROWSE_NEW_FOLDER_MODAL\": 27, \"STARRED\": 28, \"AUTO_MOUNT\": 29, \"BROWSE_FILE_ROW_BUTTON\": 30, \"BROWSE_FILE_ROW_OVERFLOW_MENU\": 31, \"EXTERNAL_SHARING_PAGE\": 32, \"SHARE_TO_UPLOAD\": 35, \"COPY_LINK_FROM_UPLOAD_MODAL\": 36, \"SHARING_PREVIEW_PAGE\": 37, \"SHARE_PAGE_INLINE\": 38, \"POST_DOWNLOAD_MODAL\": 40, \"FILE_REQUESTS\": 42, \"BROWSE_COPY_ACTION\": 43, \"BROWSE_MOVE_ACTION\": 44, \"FROM_EMAIL\": 45, \"REQUEST_ACCESS_MODAL\": 46, \"CREATE_SHARED_FOLDER_MODAL\": 47, \"DEFAULT_SHARING_SETTINGS_TAB\": 48, \"SAVE_TO_DROPBOX\": 49, \"PREVIEW_PAGE_FILE_ROW_OVERFLOW_MENU\": 50, \"PREVIEW_PAGE_FILE_ROW_BUTTON\": 51, \"JOIN_FOLDER_BUTTON\": 52, \"PREVIEW_PAGE_GRID_SINGLE_FILE_ACTION\": 53, \"PREVIEW_PAGE_TITLEBAR\": 54, \"BROWSE_SHARE_ACTION_FILE_CHOOSER\": 55, \"QUICK_VIEW_BROWSE\": 56, \"QUICK_VIEW_SEARCH\": 57, \"BROWSE_CONTENT_TILE\": 58, \"SEARCH_CONTENT_TILE\": 59, \"SUGGESTIONS_CONTENT_TILE\": 60, \"BROWSE_CONTENT_TILE_BUTTON\": 61, \"HARMONY\": 101, \"NOTIFICATION_CLIENT\": 102, \"NATIVE_SHARE_CLIENT\": 103, \"FILESYSTEM\": 104, \"NOTIFICATION_MOBILE\": 201, \"WEB_MOBILE\": 202, \"IN_APP\": 210, \"EMAIL\": 301, \"GMAIL_PLUGIN\": 302, \"OUTLOOK_ADDIN\": 303, \"PAPER_INTEGRATION\": 401, \"GOOGLE_DSS\": 501, \"TRELLO_FILE_VIEWER\": 601, \"SHARING_SDK_SANDBOX\": 700, \"SHARING_SDK_PAPER\": 701, \"SHARING_SDK_DESKTOP\": 702, \"CONTROLLED_ACCESS_SU_BANNER\": 803, \"UPLOAD_BUTTON\": 804, \"UPLOAD_JOIN_FOLDER_MODAL\": 805, \"UPLOAD_SNACKBAR\": 806, \"QUICK_REACT\": 810, \"COLLECTIONS\": 903, \"SIGN_UP_WELCOME_MODAL\": 1000, \"FLEXIBLE_SHARING_ENTRYPOINT\": 1050, \"SIMPLE_COPY_LINK_FILE_PREVIEW\": 1100, \"DOWNLOAD_BUTTON\": 1101, \"ACTION_CONTINUATION\": 1102, \"SIMPLE_COPY_LINK_FOLDER_PREVIEW\": 1103, \"LEFT_NAV_ONBOARDING_CHECKLIST\": 1104, \"UPLOAD_DRAWER\": 1105, \"PREVIEW_AUTO_SAVE\": 1106, \"COPY_LINK_MINI_MODAL\": 1107, \"ONBOARDING_SHARE_SLIDE\": 1108}}"); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/fingerprintjs_constants", "json", "{\"FINGERPRINTJS_TOKEN\": \"hSrgVEjs3amxLolocQ18\", \"SHOULD_INVOKE_FINGERPRINTJS\": true, \"REGION\": \"us\"}"); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/login_and_register", "json", "{\"GOOGLE_LOGIN_DESKTOP\": \"ON_TOP\", \"APPLE_LOGIN_DESKTOP\": \"ON\", \"LENOVO_LOGIN_DESKTOP\": \"OFF\", \"REDIRECT_WINDOW_TOKEN\": \"Achzyw0eEMKtGLDGFSuExYfUimffsltEfoKeLjvjrVEouA\", \"FUNCAPTCHA_PUBLIC_KEY\": \"419899FA-7FAF-5C1D-C027-BC34963E3A4F\", \"SHOULD_LOAD_FUNCAPTCHA\": true, \"FUNCAPTCHA_REGISTER_PUBLIC_KEY\": \"68CECE5D-F360-8653-CA80-3CF99353DDD2\", \"FUNCAPTCHA_PAYMENT_PUBLIC_KEY\": \"8AFFAA35-0217-4EF9-83C8-C62CF9EBCFB3\"}"); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.registerStreamedDataModule("metaserver/static/js/modules/constants/web_experience_constants", "json", "{\"IS_ADMIN_CONSOLE_OVERHAUL_ENABLED\": false, \"SAVED_VIEW\": \"OFF\", \"LEFT_NAV_QUERY_LIST_SECTION\": \"OFF\", \"REACT_ROUTER_PAP\": false, \"DEFAULT_DRAG_AND_DROP\": \"OFF\", \"HOME_REDUX_USE_STARRING\": false, \"CONTENT_TILES\": \"OFF\", \"CONTENT_TILES_SEARCH\": \"OFF\", \"CONTENT_TILES_QUICK_ACTIONS\": \"OFF\", \"CONTENT_TILES_FOLDER_COLLAGE\": \"OFF\", \"FOLDER_COLLAGE_ASPECT_RATIO\": \"OFF\", \"CONTENT_TILES_INTERACTIVITY_VIDEO\": \"OFF\", \"CONTENT_TILES_INTERACTIVITY_FOLDER\": \"OFF\", \"CONTENT_TILES_INTERACTIVITY_PDF\": \"OFF\", \"CONTENT_TILES_DELAY_INTERACTIVITY\": \"OFF\", \"CONTENT_TILES_STREAMING_ENDPOINT\": \"OFF\", \"RECENTS_WITH_FACETS\": \"OFF\", \"BROWSE_ON_CYPRESS\": \"CYPRESS_OTHER_USER\", \"BROWSE_CONTENT_SUGGESTIONS_VARIANT\": \"OFF\", \"THEME_PROVIDER_THEME\": \"OFF\", \"DIG_FEATURE_LEVEL\": \"OFF\", \"BROWSE_WITH_FACETS\": \"OFF\", \"SECTION_COMPONENT_BROWSE\": \"OFF\", \"FOLDER_LEVEL_FILTER\": \"OFF\", \"WEB_REDESIGN_GLOBAL_HEADER\": \"OFF\", \"BROWSE_DEFAULT_GRID_VIEW\": \"OFF\", \"WEB_REDESIGN_ACTION_BAR_ANIMATION\": \"OFF\", \"FOLDER_CREATE_WITHOUT_REDIRECT\": \"OFF\", \"BROWSE_FILE_VIEW_REFACTOR\": \"OFF\", \"QUICK_VIEW_BROWSE\": \"OFF\", \"BROWSE_SHARE_ENTRYPOINTS_REVAMP\": \"OFF\", \"ACTIONS_OVERFLOW_MENU_PERF\": \"OFF\", \"QUICK_VIEW_RELATED_FILES\": \"OFF\", \"CONTENT_TILES_INTERACTIVITY_STREAMING_ONLY\": \"OFF\", \"WEB_REDESIGN_ACTION_BAR\": \"OFF\", \"QUICK_VIEW_FOLDER_VIEW\": \"OFF\", \"CONTENT_TILES_TRAILING_TRUNCATION\": \"OFF\", \"INTELLIGENCE_APRIL_2024_HOLDOUT_CONTROL\": \"OFF\", \"BROWSE_CAMPAIGN_CONFLICT_RESOLUTION\": false}"); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=">window.addRequireLoadCallback(function() { - window.require(["js/edison/edison"], function (edisonModule) { - edisonModule.Edison.waitUntilInitialized().then(function() { - edisonModule.Edison.doneStreaming(); - }); - }); -}); -</script><script nonce="AneY6l0rmcrTspXW3Ml/lWjNg/M=" async src="/page_success/end?edison_page_name=shared_link_generic_error&path=%2Fscl%2Ffi%2F6nohk2uv89pupe8tjj9ib%2Fck_data_01242024.tar.gz&request_id=f2bad419193640d08417c46bd13870a9&time=1711501607" crossorigin="anonymous"></script> -</body></html><!--status=200--> \ No newline at end of file diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 52dce8d0..2b443af1 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -49,9 +49,9 @@ inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) { Real vy = *v3; Real vz = *v1; - Real delta = sqrt(pow(x, 2) + pow(y, 2) + 1); - Real C = sqrt(1 + pow(x, 2)); - Real D = sqrt(1 + pow(y, 2)); + Real delta = sqrt(x*x + y*y + 1); + Real C = sqrt(1 + x*x); + Real D = sqrt(1 + y*y); *v1 = (vz - D * x * vx - C * y * vy) / delta; *v2 = @@ -69,15 +69,15 @@ inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) { Real vy = *v3; Real vz = *v1; - Real delta = sqrt(pow(x, 2) + pow(y, 2) + 1); - Real C = sqrt(1 + pow(x, 2)); - Real D = sqrt(1 + pow(y, 2)); + Real delta = sqrt(x*x + y*y + 1); + Real C = sqrt(1 + x*x); + Real D = sqrt(1 + y*y); *v1 = (vz + x * vx + y * vy) / delta; *v2 = - (-x * vz / D + vx * (1 + pow(y, 2)) / D - vy * x * y / D) / delta; + (-x * vz / D + vx * (1 + y*y) / D - vy * x * y / D) / delta; *v3 = - (-y * vz / C - x * y * vx / C + (1 + pow(x, 2)) * vy / C) / delta; + (-y * vz / C - x * y * vx / C + (1 + x*x) * vy / C) / delta; } //! Transform cubed sphere velocity from panel 1 to panel 2 @@ -119,13 +119,6 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, *vy = v1; vel_zxy_to_zab(vz, vx, vy, a, b); break; - case 5: - // z->-z, x->-x, y->y - *vz = -v1; - *vx = -v2; - *vy = v3; - vel_zxy_to_zab(vz, vx, vy, a, b); - break; case 6: // z->-y, x->x, y->z //(*vy) *= -1; @@ -158,8 +151,6 @@ inline void vel_zab_from_p2(Real *vz, Real *vx, Real *vy, Real a, Real b, break; case 5: break; - case 6: - break; } } @@ -179,8 +170,6 @@ inline void vel_zab_from_p3(Real *vz, Real *vx, Real *vy, Real a, Real b, break; case 2: break; - case 4: - break; case 5: break; case 6: @@ -204,8 +193,6 @@ inline void vel_zab_from_p4(Real *vz, Real *vx, Real *vy, Real a, Real b, break; case 2: break; - case 3: - break; case 5: break; case 6: @@ -220,13 +207,6 @@ inline void vel_zab_from_p5(Real *vz, Real *vx, Real *vy, Real a, Real b, Real v2 = *vx; Real v3 = *vy; switch (panel) { - case 1: - // z->-z, x->-x, y->y - *vz = -v1; - *vx = -v2; - *vy = v3; - vel_zxy_to_zab(vz, vx, vy, a, b); - break; case 2: break; case 3: @@ -252,8 +232,6 @@ inline void vel_zab_from_p6(Real *vz, Real *vx, Real *vy, Real a, Real b, *vy = -v1; vel_zxy_to_zab(vz, vx, vy, a, b); break; - case 2: - break; case 3: break; case 4: diff --git a/tests/test_cs_velocity_rotation.cpp b/tests/test_cs_velocity_rotation.cpp index e829f43c..c64f02fd 100644 --- a/tests/test_cs_velocity_rotation.cpp +++ b/tests/test_cs_velocity_rotation.cpp @@ -24,46 +24,46 @@ TEST(vel_zab_to_zxy, test_ab_to_xy_to_ab) { std::cout << *vz << " " << *vx << " " << *vy; CubedSphereUtility::vel_zab_to_zxy(vz, vx, vy, PI/3, PI/4); for (int i = 0; i < 3; i++) { - EXPECT_NEAR(result[i], expected_result[i], pow(10,-5)); + EXPECT_NEAR(result[i], expected_result[i], 1e-5); } } -TEST(vel_zab_from_test, test_case_1_to_3_to_1) { +TEST(vel_zab_from_test, test_case_1_to_2_to_1) { Real result[3] = {1,2,3}; Real *vz = result; Real *vx = result + 1; Real *vy = result + 2; Real expected_result[3] = {1,2,3}; - CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 3); - CubedSphereUtility::vel_zab_from_p3(vz, vx, vy, PI/5*2, PI/8*3, 1); + CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 2); + CubedSphereUtility::vel_zab_from_p2(vz, vx, vy, PI/5*2, PI/8*3, 1); for (int i = 0; i < 3; i++) { - EXPECT_NEAR(result[i], expected_result[i], pow(10,-5)); + EXPECT_NEAR(result[i], expected_result[i], 1e-5); } } -TEST(vel_zab_from_test, test_case_1_to_4_to_1) { +TEST(vel_zab_from_test, test_case_1_to_3_to_1) { Real result[3] = {1,2,3}; Real *vz = result; Real *vx = result + 1; Real *vy = result + 2; Real expected_result[3] = {1,2,3}; - CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 4); - CubedSphereUtility::vel_zab_from_p4(vz, vx, vy, PI/5*2, PI/8*3, 1); + CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 3); + CubedSphereUtility::vel_zab_from_p3(vz, vx, vy, PI/5*2, PI/8*3, 1); for (int i = 0; i < 3; i++) { - EXPECT_NEAR(result[i], expected_result[i], pow(10,-5)); + EXPECT_NEAR(result[i], expected_result[i], 1e-5); } } -TEST(vel_zab_from_test, test_case_1_to_5_to_1) { +TEST(vel_zab_from_test, test_case_1_to_4_to_1) { Real result[3] = {1,2,3}; Real *vz = result; Real *vx = result + 1; Real *vy = result + 2; Real expected_result[3] = {1,2,3}; - CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 5); - CubedSphereUtility::vel_zab_from_p5(vz, vx, vy, PI/5*2, PI/8*3, 1); + CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 4); + CubedSphereUtility::vel_zab_from_p4(vz, vx, vy, PI/5*2, PI/8*3, 1); for (int i = 0; i < 3; i++) { - EXPECT_NEAR(result[i], expected_result[i], pow(10,-5)); + EXPECT_NEAR(result[i], expected_result[i], 1e-5); } } @@ -76,7 +76,7 @@ TEST(vel_zab_from_test, test_case_1_to_6_to_1) { CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 6); CubedSphereUtility::vel_zab_from_p6(vz, vx, vy, PI/5*2, PI/8*3, 1); for (int i = 0; i < 3; i++) { - EXPECT_NEAR(result[i], expected_result[i], pow(10,-5)); + EXPECT_NEAR(result[i], expected_result[i], 1e-5); } } From 9e107b278141fdd17357627f270411eed312f6dc Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Sat, 30 Mar 2024 12:04:57 -0400 Subject: [PATCH 19/22] correction 2 --- src/exo3/cs_velocity_rotation.hpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 2b443af1..81ae6cdd 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -93,8 +93,6 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, switch (panel) { case 2: // z->y, x->-x, y->z - //(*vx) *= -1; - //vel_zxy_to_zab(vy, vx, vz, a, b); *vz = v3; *vx = -v2; *vy = v1; @@ -102,8 +100,6 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, break; case 3: // z->-x, x->z, y->y - //(*vz) *= -1; - //vel_zxy_to_zab(vx, vz, vy, a, b); *vz = v2; *vx = -v1; *vy = v3; @@ -111,9 +107,6 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, break; case 4: // z->-x, x->-y, y->z - //(*vx) *= -1; - //(*vy) *= -1; - //vel_zxy_to_zab(vx, vy, vz, a, b); *vz = -v2; *vx = -v3; *vy = v1; @@ -121,8 +114,6 @@ inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, break; case 6: // z->-y, x->x, y->z - //(*vy) *= -1; - //vel_zxy_to_zab(vy, vx, vz, a, b); *vz = -v3; *vx = v2; *vy = v1; From d8f97241f3abbc819e43ce63ef412b02e8c082db Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Sun, 31 Mar 2024 19:46:22 -0400 Subject: [PATCH 20/22] file manage --- src/checks.cpp | 287 ------------------------------ src/exo3/cs_velocity_rotation.cpp | 196 ++++++++++++++++++++ src/exo3/cs_velocity_rotation.hpp | 199 ++------------------- 3 files changed, 210 insertions(+), 472 deletions(-) delete mode 100644 src/checks.cpp create mode 100644 src/exo3/cs_velocity_rotation.cpp diff --git a/src/checks.cpp b/src/checks.cpp deleted file mode 100644 index ae9700db..00000000 --- a/src/checks.cpp +++ /dev/null @@ -1,287 +0,0 @@ -// C/C++ -#include <iomanip> -#include <sstream> -#include <string> - -// athena -#include <athena/athena.hpp> -#include <athena/coordinates/coordinates.hpp> -#include <athena/globals.hpp> -#include <athena/mesh/mesh.hpp> - -// canoe -#include <air_parcel.hpp> -#include <configure.hpp> -#include <impl.hpp> - -// snap -#include <snap/thermodynamics/thermodynamics.hpp> - -// single column -#include <single_column/single_column.hpp> - -#ifdef ENABLE_GLOG -#include <glog/logging.h> -#endif - -std::string print_column_table(std::string name, AthenaArray<Real> const& var, - int k, int j, int il, int iu, int width = 1) { - std::stringstream msg; - - msg << "rank = " << Globals::my_rank << ", " << name << " dump:" << std::endl; - - for (int i = il; i <= iu; ++i) { - msg << "i = " << std::setw(4) << i << " |"; - msg << std::setw(4) << "("; - for (int n = 0; n < NHYDRO; ++n) msg << var(n, k, j, i) << ", "; - msg << ")" << std::endl; - } - - return msg.str(); -} - -std::string print_column_table(std::string name, AthenaArray<Real> const& var, - int il, int iu) { - std::stringstream msg; - - msg << "rank = " << Globals::my_rank << ", " << name << " dump:" << std::endl; - - for (int i = il; i <= iu; ++i) { - msg << "i = " << std::setw(4) << i << " |"; - msg << std::setw(4) << "("; - for (int n = 0; n < NHYDRO; ++n) msg << var(n, i) << ", "; - msg << ")" << std::endl; - } - - return msg.str(); -} - -void check_eos_cons2prim(AthenaArray<Real> const& prim, int k, int j, int il, - int iu) { -#ifdef ENABLE_GLOG - for (int i = il; i <= iu; ++i) { - Real const& w_d = prim(IDN, k, j, i); - Real const& w_p = prim(IPR, k, j, i); - - int ifix = il; - for (; ifix <= iu; ++ifix) { - if ((prim(IDN, k, j, ifix) < 0.) || std::isnan(prim(IDN, k, j, ifix)) || - (prim(IPR, k, j, ifix) < 0.) || std::isnan(prim(IPR, k, j, ifix))) { - break; - } - } - - LOG_IF(FATAL, std::isnan(w_d) || (w_d < 0.)) - << "ifix = " << ifix << ", " - << print_column_table("prim-den", prim, k, j, il, iu); - - LOG_IF(FATAL, std::isnan(w_p) || (w_p < 0.)) - << "ifix = " << ifix << ", " - << print_column_table("prim-pre", prim, k, j, il, iu); - } -#endif // ENABLE_GLOG -} - -void check_reconstruct(AthenaArray<Real> const& wl, AthenaArray<Real> const& wr, - int dir, int k, int j, int il, int iu) {} - -void check_hydro_riemann_solver_flux(AthenaArray<Real> const& flux, int ivx, - int k, int j, int il, int iu) { -#ifdef ENABLE_GLOG - for (int i = il; i <= iu; ++i) { - for (int n = 0; n < NHYDRO; ++n) { - char name[80]; - snprintf(name, 80, "flux%d-%d", ivx, n); - LOG_IF(FATAL, std::isnan(flux(n, k, j, i))) - << print_column_table(name, flux, n, k, j, il, iu); - } - } -#endif // ENABLE_GLOG -} - -void check_decomposition(AthenaArray<Real> const& wl, - AthenaArray<Real> const& wr, int k, int j, int il, - int iu) { - /*#ifdef ENABLE_GLOG - for (int i = il; i <= iu; ++i) { - LOG_IF(FATAL, wl(IDN, k, j, i) < 0.) - << print_column_table("wl-den", wl, k, j, il, iu); - - LOG_IF(FATAL, wr(IDN, k, j, i) < 0.) - << print_column_table("wr-den", wr, k, j, il, iu); - - LOG_IF(ERROR, wl(IPR, k, j, i) < 0.) - << print_column_table("wl-pre", wl, k, j, il, iu); - - LOG_IF(ERROR, wr(IPR, k, j, i) < 0.) - << print_column_table("wl-pre", wr, k, j, il, iu); - } - #endif // ENABLE_GLOG*/ -} - -void check_implicit_cons(AthenaArray<Real> const& cons, int il, int iu, int jl, - int ju, int kl, int ku) { -#ifdef ENABLE_GLOG - for (int k = kl; k <= ku; ++k) - for (int j = jl; j <= ju; ++j) - for (int i = il; i <= iu; ++i) { - Real const& u_d = cons(IDN, k, j, i); - Real const& u_e = cons(IEN, k, j, i); - - LOG_IF(FATAL, std::isnan(u_d) || (u_d < 0.)) - << print_column_table("cons-den", cons, k, j, il, iu); - - LOG_IF(FATAL, std::isnan(u_e) || (u_e < 0.)) - << print_column_table("cons-eng", cons, k, j, il, iu); - } -#endif // ENABLE_GLOG -} - -// dirty fix for negative pressure and density -void fix_eos_cons2prim(MeshBlock* pmb, AthenaArray<Real>& prim, - AthenaArray<Real>& cons, int k, int j, int il, int iu) { -#ifdef ENABLE_FIX - auto pthermo = Thermodynamics::GetInstance(); - auto pcoord = pmb->pcoord; - auto pscm = pmb->pimpl->pscm; - - Real Rd = pthermo->GetRd(); - Real grav = pmb->phydro->hsrc.GetG1(); - - int ifix = il; - for (; ifix <= iu; ++ifix) { - if ((prim(IDN, k, j, ifix) < 0.) || std::isnan(prim(IDN, k, j, ifix)) || - (prim(IPR, k, j, ifix) < 0.) || std::isnan(prim(IPR, k, j, ifix))) { - break; - } - } - - AirColumn ac(pmb->ncells1); - for (int i = ifix - 1; i <= iu; ++i) { - ac[i].SetType(AirParcel::Type::MassFrac); - for (int n = 0; n < NHYDRO; ++n) { - ac[i].w[n] = prim(n, k, j, i); - } - } - - pscm->ConvectiveAdjustment(ac, k, j, ifix - 1, iu); - - for (int i = ifix - 1; i <= iu; ++i) { - ac[i].ToMassFraction(); - for (int n = 0; n < NHYDRO; ++n) { - prim(n, k, j, i) = ac[i].w[n]; - } - - ac[i].ToMassConcentration(); - for (int n = 0; n < NHYDRO; ++n) { - cons(n, k, j, i) = ac[i].w[n]; - } - } - - /*Real temp = pthermo->GetTemp(pmb, k, j, ifix - 1); - for (int i = ifix; i <= iu; ++i) { - Real z = pcoord->x1v(i) - pcoord->x1v(ifix - 1); - prim(IDN, k, j, i) = - prim(IDN, k, j, ifix - 1) * exp(grav * z / (Rd * temp)); - prim(IPR, k, j, i) = - prim(IPR, k, j, ifix - 1) * exp(grav * z / (Rd * temp)); - prim(IVX, k, j, i) /= 2.; - prim(IVY, k, j, i) /= 2.; - prim(IVZ, k, j, i) /= 2.; - }*/ - -#endif // ENABLE_FIX -} - -void fix_reconstruct_x1(MeshBlock* pmb, AthenaArray<Real>& wl, - AthenaArray<Real>& wr, AthenaArray<Real> const& w, - int k, int j, int il, int iu) {} - -void fix_reconstruct_x2(AthenaArray<Real>& wl, AthenaArray<Real>& wr, - AthenaArray<Real> const& w, int k, int j, int il, - int iu) { -#ifdef ENABLE_FIX - for (int i = il; i <= iu; ++i) { - if (wl(IDN, i) < 0.) wl(IDN, i) = w(IDN, k, j - 1, i); - if (wr(IDN, i) < 0.) wr(IDN, i) = w(IDN, k, j, i); - if (wl(IPR, i) < 0.) wl(IPR, i) = w(IPR, k, j - 1, i); - if (wr(IPR, i) < 0.) wr(IPR, i) = w(IPR, k, j, i); - } -#endif // ENABLE_FIX -} - -void fix_reconstruct_x3(AthenaArray<Real>& wl, AthenaArray<Real>& wr, - AthenaArray<Real> const& w, int k, int j, int il, - int iu) { -#ifdef ENABLE_FIX - for (int i = il; i <= iu; ++i) { - if (wl(IDN, i) < 0.) wl(IDN, i) = w(IDN, k - 1, j, i); - if (wr(IDN, i) < 0.) wr(IDN, i) = w(IDN, k, j, i); - if (wl(IPR, i) < 0.) wl(IPR, i) = w(IPR, k - 1, j, i); - if (wr(IPR, i) < 0.) wr(IPR, i) = w(IPR, k, j, i); - } -#endif // ENABLE_FIX -} - -void fix_implicit_cons(MeshBlock* pmb, AthenaArray<Real>& cons, int il, int iu, - int jl, int ju, int kl, int ku) { -#ifdef ENABLE_FIX - auto pthermo = Thermodynamics::GetInstance(); - auto pcoord = pmb->pcoord; - auto pscm = pmb->pimpl->pscm; - - Real Rd = pthermo->GetRd(); - Real grav = pmb->phydro->hsrc.GetG1(); - - for (int k = kl; k <= ku; ++k) - for (int j = jl; j <= ju; ++j) { - int ifix = il; - - for (; ifix <= iu; ++ifix) { - if ((cons(IDN, k, j, ifix) < 0.) || std::isnan(cons(IDN, k, j, ifix)) || - (cons(IEN, k, j, ifix) < 0.) || std::isnan(cons(IEN, k, j, ifix))) { - break; - } - } - - AirColumn ac(pmb->ncells1); - for (int i = ifix - 1; i <= iu; ++i) { - ac[i].SetType(AirParcel::Type::MassConc); - for (int n = 0; n < NHYDRO; ++n) { - ac[i].w[n] = cons(n, k, j, i); - } - } - - pscm->ConvectiveAdjustment(ac, k, j, ifix - 1, iu); - - for (int i = ifix - 1; i <= iu; ++i) { - for (int n = 0; n < NHYDRO; ++n) { - cons(n, k, j, i) = ac[i].w[n]; - } - } - - /*AirParcel air0(AirParcel::Type::MassConc); - for (int n = 0; n < NHYDRO; ++n) air0.w[n] = cons(n, k, j, ifix - 1); - air0.ToMoleFraction(); - Real temp = air0.w[IDN]; - air0.ToMassFraction(); - - AirParcel air(AirParcel::Type::MassConc); - - for (int i = ifix; i <= iu; ++i) { - for (int n = 0; n < NHYDRO; ++n) air.w[n] = cons(n, k, j, i); - air.ToMassFraction(); - - Real z = pcoord->x1v(i) - pcoord->x1v(ifix - 1); - air.w[IDN] = air0.w[IDN] * exp(grav * z / (Rd * temp)); - air.w[IPR] = air0.w[IPR] * exp(grav * z / (Rd * temp)); - air.w[IVX] /= 2.; - air.w[IVY] /= 2.; - air.w[IVZ] /= 2.; - - air.ToMassConcentration(); - for (int n = 0; n < NHYDRO; ++n) cons(n, k, j, i) = air.w[n]; - }*/ - } -#endif // ENABLE_FIX -} diff --git a/src/exo3/cs_velocity_rotation.cpp b/src/exo3/cs_velocity_rotation.cpp new file mode 100644 index 00000000..630fb4bb --- /dev/null +++ b/src/exo3/cs_velocity_rotation.cpp @@ -0,0 +1,196 @@ +#include "cs_velocity_rotation.hpp" + +namespace CubedSphereUtility { + +//! Transform cubed sphere velocity to local cartesian velocity +void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) { + Real x = tan(a); + Real y = tan(b); + + Real vx = *v2; + Real vy = *v3; + Real vz = *v1; + + Real delta = sqrt(x*x + y*y + 1); + Real C = sqrt(1 + x*x); + Real D = sqrt(1 + y*y); + + *v1 = (vz - D * x * vx - C * y * vy) / delta; + *v2 = + (x * vz + D * vx) / delta; + *v3 = + (y * vz + C * vy) / delta; +} + +//! Transform local cartesian velocity to cubed sphere velocity +void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) { + Real x = tan(a); + Real y = tan(b); + + Real vx = *v2; + Real vy = *v3; + Real vz = *v1; + + Real delta = sqrt(x*x + y*y + 1); + Real C = sqrt(1 + x*x); + Real D = sqrt(1 + y*y); + + *v1 = (vz + x * vx + y * vy) / delta; + *v2 = + (-x * vz / D + vx * (1 + y*y) / D - vy * x * y / D) / delta; + *v3 = + (-y * vz / C - x * y * vx / C + (1 + x*x) * vy / C) / delta; +} + +//! Transform cubed sphere velocity from panel 1 to panel 2 +//! \param a $x = \tan(\xi)$ coordinates +//! \param b $y = \tan(\eta)$ coordinat +void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; + + switch (panel) { + case 2: + // z->y, x->-x, y->z + *vz = v3; + *vx = -v2; + *vy = v1; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 3: + // z->-x, x->z, y->y + *vz = v2; + *vx = -v1; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 4: + // z->-x, x->-y, y->z + *vz = -v2; + *vx = -v3; + *vy = v1; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 6: + // z->-y, x->x, y->z + *vz = -v3; + *vx = v2; + *vy = v1; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + } +} + +void vel_zab_from_p2(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; + switch (panel) { + case 1: + // z->y, x->-x, y->z + *vz = v3; + *vx = -v2; + *vy = v1; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 2: + break; + case 4: + break; + case 5: + break; + } +} + +void vel_zab_from_p3(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; + switch (panel) { + case 1: + // z->x, x->-z, y->y + *vz = -v2; + *vx = v1; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 2: + break; + case 5: + break; + case 6: + break; + } +} + +void vel_zab_from_p4(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; + switch (panel) { + case 1: + // z->y, x->-z, y->-x + *vz = v3; + *vx = -v1; + *vy = -v2; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 2: + break; + case 5: + break; + case 6: + break; + } +} + +void vel_zab_from_p5(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; + switch (panel) { + case 2: + break; + case 3: + break; + case 4: + break; + case 6: + break; + } +} + +void vel_zab_from_p6(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel) { + vel_zab_to_zxy(vz, vx, vy, a, b); + Real v1 = *vz; + Real v2 = *vx; + Real v3 = *vy; + switch (panel) { + case 1: + // z->y, x->x, y->-z + *vz = v3; + *vx = v2; + *vy = -v1; + vel_zxy_to_zab(vz, vx, vy, a, b); + break; + case 3: + break; + case 4: + break; + case 5: + break; + } +} +} // namespace CubedSphereUtility \ No newline at end of file diff --git a/src/exo3/cs_velocity_rotation.hpp b/src/exo3/cs_velocity_rotation.hpp index 81ae6cdd..9df5b4b6 100644 --- a/src/exo3/cs_velocity_rotation.hpp +++ b/src/exo3/cs_velocity_rotation.hpp @@ -41,196 +41,25 @@ namespace CubedSphereUtility { //! Transform cubed sphere velocity to local cartesian velocity -inline void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b) { - Real x = tan(a); - Real y = tan(b); - - Real vx = *v2; - Real vy = *v3; - Real vz = *v1; - - Real delta = sqrt(x*x + y*y + 1); - Real C = sqrt(1 + x*x); - Real D = sqrt(1 + y*y); - - *v1 = (vz - D * x * vx - C * y * vy) / delta; - *v2 = - (x * vz + D * vx) / delta; - *v3 = - (y * vz + C * vy) / delta; -} - +void vel_zab_to_zxy(Real *v1, Real *v2, Real *v3, Real a, Real b); //! Transform local cartesian velocity to cubed sphere velocity -inline void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b) { - Real x = tan(a); - Real y = tan(b); - - Real vx = *v2; - Real vy = *v3; - Real vz = *v1; - - Real delta = sqrt(x*x + y*y + 1); - Real C = sqrt(1 + x*x); - Real D = sqrt(1 + y*y); - - *v1 = (vz + x * vx + y * vy) / delta; - *v2 = - (-x * vz / D + vx * (1 + y*y) / D - vy * x * y / D) / delta; - *v3 = - (-y * vz / C - x * y * vx / C + (1 + x*x) * vy / C) / delta; -} +void vel_zxy_to_zab(Real *v1, Real *v2, Real *v3, Real a, Real b); //! Transform cubed sphere velocity from panel 1 to panel 2 //! \param a $x = \tan(\xi)$ coordinates //! \param b $y = \tan(\eta)$ coordinat -inline void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, - int panel) { - vel_zab_to_zxy(vz, vx, vy, a, b); - Real v1 = *vz; - Real v2 = *vx; - Real v3 = *vy; - - switch (panel) { - case 2: - // z->y, x->-x, y->z - *vz = v3; - *vx = -v2; - *vy = v1; - vel_zxy_to_zab(vz, vx, vy, a, b); - break; - case 3: - // z->-x, x->z, y->y - *vz = v2; - *vx = -v1; - *vy = v3; - vel_zxy_to_zab(vz, vx, vy, a, b); - break; - case 4: - // z->-x, x->-y, y->z - *vz = -v2; - *vx = -v3; - *vy = v1; - vel_zxy_to_zab(vz, vx, vy, a, b); - break; - case 6: - // z->-y, x->x, y->z - *vz = -v3; - *vx = v2; - *vy = v1; - vel_zxy_to_zab(vz, vx, vy, a, b); - break; - } -} - -inline void vel_zab_from_p2(Real *vz, Real *vx, Real *vy, Real a, Real b, - int panel) { - vel_zab_to_zxy(vz, vx, vy, a, b); - Real v1 = *vz; - Real v2 = *vx; - Real v3 = *vy; - switch (panel) { - case 1: - // z->y, x->-x, y->z - *vz = v3; - *vx = -v2; - *vy = v1; - vel_zxy_to_zab(vz, vx, vy, a, b); - break; - case 2: - break; - case 4: - break; - case 5: - break; - } -} - -inline void vel_zab_from_p3(Real *vz, Real *vx, Real *vy, Real a, Real b, - int panel) { - vel_zab_to_zxy(vz, vx, vy, a, b); - Real v1 = *vz; - Real v2 = *vx; - Real v3 = *vy; - switch (panel) { - case 1: - // z->x, x->-z, y->y - *vz = -v2; - *vx = v1; - *vy = v3; - vel_zxy_to_zab(vz, vx, vy, a, b); - break; - case 2: - break; - case 5: - break; - case 6: - break; - } -} - -inline void vel_zab_from_p4(Real *vz, Real *vx, Real *vy, Real a, Real b, - int panel) { - vel_zab_to_zxy(vz, vx, vy, a, b); - Real v1 = *vz; - Real v2 = *vx; - Real v3 = *vy; - switch (panel) { - case 1: - // z->y, x->-z, y->-x - *vz = v3; - *vx = -v1; - *vy = -v2; - vel_zxy_to_zab(vz, vx, vy, a, b); - break; - case 2: - break; - case 5: - break; - case 6: - break; - } -} - -inline void vel_zab_from_p5(Real *vz, Real *vx, Real *vy, Real a, Real b, - int panel) { - vel_zab_to_zxy(vz, vx, vy, a, b); - Real v1 = *vz; - Real v2 = *vx; - Real v3 = *vy; - switch (panel) { - case 2: - break; - case 3: - break; - case 4: - break; - case 6: - break; - } -} - -inline void vel_zab_from_p6(Real *vz, Real *vx, Real *vy, Real a, Real b, - int panel) { - vel_zab_to_zxy(vz, vx, vy, a, b); - Real v1 = *vz; - Real v2 = *vx; - Real v3 = *vy; - switch (panel) { - case 1: - // z->y, x->x, y->-z - *vz = v3; - *vx = v2; - *vy = -v1; - vel_zxy_to_zab(vz, vx, vy, a, b); - break; - case 3: - break; - case 4: - break; - case 5: - break; - } -} +void vel_zab_from_p1(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel); +void vel_zab_from_p2(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel); +void vel_zab_from_p3(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel); +void vel_zab_from_p4(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel); +void vel_zab_from_p5(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel); +void vel_zab_from_p6(Real *vz, Real *vx, Real *vy, Real a, Real b, + int panel); } // namespace CubedSphereUtility #endif // SRC_EXO3_VELOCITY_ROTATION_HPP_ \ No newline at end of file From c5ca89a9cc314f987baf866ffdd92e7d7dca537c Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Mon, 1 Apr 2024 00:11:29 -0400 Subject: [PATCH 21/22] file added --- src/checks.cpp | 304 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 src/checks.cpp diff --git a/src/checks.cpp b/src/checks.cpp new file mode 100644 index 00000000..045aea3a --- /dev/null +++ b/src/checks.cpp @@ -0,0 +1,304 @@ +// C/C++ +#include <iomanip> +#include <sstream> +#include <string> + +// athena +#include <athena/athena.hpp> +#include <athena/coordinates/coordinates.hpp> +#include <athena/globals.hpp> +#include <athena/mesh/mesh.hpp> + +// canoe +#include <air_parcel.hpp> +#include <configure.hpp> +#include <impl.hpp> + +// snap +#include <snap/thermodynamics/thermodynamics.hpp> + +// single column +#include <single_column/single_column.hpp> + +#ifdef ENABLE_GLOG +#include <glog/logging.h> +#endif + +std::string print_column_table(std::string name, AthenaArray<Real> const& var, + int k, int j, int il, int iu, int width = 1) { + std::stringstream msg; + + msg << "rank = " << Globals::my_rank << ", " << name << " dump:" << std::endl; + + for (int i = il; i <= iu; ++i) { + msg << "i = " << std::setw(4) << i << " |"; + msg << std::setw(4) << "("; + for (int n = 0; n < NHYDRO; ++n) msg << var(n, k, j, i) << ", "; + msg << ")" << std::endl; + } + + return msg.str(); +} + +std::string print_column_table(std::string name, AthenaArray<Real> const& var, + int il, int iu) { + std::stringstream msg; + + msg << "rank = " << Globals::my_rank << ", " << name << " dump:" << std::endl; + + for (int i = il; i <= iu; ++i) { + msg << "i = " << std::setw(4) << i << " |"; + msg << std::setw(4) << "("; + for (int n = 0; n < NHYDRO; ++n) msg << var(n, i) << ", "; + msg << ")" << std::endl; + } + + return msg.str(); +} + +void check_eos_cons2prim(AthenaArray<Real> const& prim, int k, int j, int il, + int iu) { +#ifdef ENABLE_GLOG + for (int i = il; i <= iu; ++i) { + Real const& w_d = prim(IDN, k, j, i); + Real const& w_p = prim(IPR, k, j, i); + + int ifix = il; + for (; ifix <= iu; ++ifix) { + if ((prim(IDN, k, j, ifix) < 0.) || std::isnan(prim(IDN, k, j, ifix)) || + (prim(IPR, k, j, ifix) < 0.) || std::isnan(prim(IPR, k, j, ifix))) { + break; + } + } + + LOG_IF(FATAL, std::isnan(w_d) || (w_d < 0.)) + << "ifix = " << ifix << ", " + << print_column_table("prim-den", prim, k, j, il, iu); + + LOG_IF(FATAL, std::isnan(w_p) || (w_p < 0.)) + << "ifix = " << ifix << ", " + << print_column_table("prim-pre", prim, k, j, il, iu); + } +#endif // ENABLE_GLOG +} + +void check_reconstruct(AthenaArray<Real> const& wl, AthenaArray<Real> const& wr, + int dir, int k, int j, int il, int iu) { +#ifdef ENABLE_GLOG + for (int i = il; i <= iu; ++i) { + char name[80]; + snprintf(name, 80, "wl-den-%d", dir + 1); + LOG_IF(FATAL, wl(IDN, i) < 0.) << print_column_table(name, wl, il, iu); + + snprintf(name, 80, "wr-den-%d", dir + 1); + LOG_IF(FATAL, wr(IDN, i) < 0.) << print_column_table(name, wr, il, iu); + + snprintf(name, 80, "wl-pre-%d", dir + 1); + LOG_IF(FATAL, wl(IPR, i) < 0.) << print_column_table(name, wl, il, iu); + + snprintf(name, 80, "wr-pre-%d", dir + 1); + LOG_IF(FATAL, wr(IPR, i) < 0.) << print_column_table(name, wr, il, iu); + } +#endif // ENABLE_GLOG +} + +void check_hydro_riemann_solver_flux(AthenaArray<Real> const& flux, int ivx, + int k, int j, int il, int iu) { +#ifdef ENABLE_GLOG + for (int i = il; i <= iu; ++i) { + for (int n = 0; n < NHYDRO; ++n) { + char name[80]; + snprintf(name, 80, "flux%d-%d", ivx, n); + LOG_IF(FATAL, std::isnan(flux(n, k, j, i))) + << print_column_table(name, flux, n, k, j, il, iu); + } + } +#endif // ENABLE_GLOG +} + +void check_decomposition(AthenaArray<Real> const& wl, + AthenaArray<Real> const& wr, int k, int j, int il, + int iu) { + /*#ifdef ENABLE_GLOG + for (int i = il; i <= iu; ++i) { + LOG_IF(FATAL, wl(IDN, k, j, i) < 0.) + << print_column_table("wl-den", wl, k, j, il, iu); + + LOG_IF(FATAL, wr(IDN, k, j, i) < 0.) + << print_column_table("wr-den", wr, k, j, il, iu); + + LOG_IF(ERROR, wl(IPR, k, j, i) < 0.) + << print_column_table("wl-pre", wl, k, j, il, iu); + + LOG_IF(ERROR, wr(IPR, k, j, i) < 0.) + << print_column_table("wl-pre", wr, k, j, il, iu); + } + #endif // ENABLE_GLOG*/ +} + +void check_implicit_cons(AthenaArray<Real> const& cons, int il, int iu, int jl, + int ju, int kl, int ku) { +#ifdef ENABLE_GLOG + for (int k = kl; k <= ku; ++k) + for (int j = jl; j <= ju; ++j) + for (int i = il; i <= iu; ++i) { + Real const& u_d = cons(IDN, k, j, i); + Real const& u_e = cons(IEN, k, j, i); + + LOG_IF(FATAL, std::isnan(u_d) || (u_d < 0.)) + << print_column_table("cons-den", cons, k, j, il, iu); + + LOG_IF(FATAL, std::isnan(u_e) || (u_e < 0.)) + << print_column_table("cons-eng", cons, k, j, il, iu); + } +#endif // ENABLE_GLOG +} + +// dirty fix for negative pressure and density +void fix_eos_cons2prim(MeshBlock* pmb, AthenaArray<Real>& prim, + AthenaArray<Real>& cons, int k, int j, int il, int iu) { +#ifdef ENABLE_FIX + auto pthermo = Thermodynamics::GetInstance(); + auto pcoord = pmb->pcoord; + auto pscm = pmb->pimpl->pscm; + + Real Rd = pthermo->GetRd(); + Real grav = pmb->phydro->hsrc.GetG1(); + + int ifix = il; + for (; ifix <= iu; ++ifix) { + if ((prim(IDN, k, j, ifix) < 0.) || std::isnan(prim(IDN, k, j, ifix)) || + (prim(IPR, k, j, ifix) < 0.) || std::isnan(prim(IPR, k, j, ifix))) { + break; + } + } + + AirColumn ac(pmb->ncells1); + for (int i = ifix - 1; i <= iu; ++i) { + ac[i].SetType(AirParcel::Type::MassFrac); + for (int n = 0; n < NHYDRO; ++n) { + ac[i].w[n] = prim(n, k, j, i); + } + } + + pscm->ConvectiveAdjustment(ac, k, j, ifix - 1, iu); + + for (int i = ifix - 1; i <= iu; ++i) { + ac[i].ToMassFraction(); + for (int n = 0; n < NHYDRO; ++n) { + prim(n, k, j, i) = ac[i].w[n]; + } + + ac[i].ToMassConcentration(); + for (int n = 0; n < NHYDRO; ++n) { + cons(n, k, j, i) = ac[i].w[n]; + } + } + + /*Real temp = pthermo->GetTemp(pmb, k, j, ifix - 1); + for (int i = ifix; i <= iu; ++i) { + Real z = pcoord->x1v(i) - pcoord->x1v(ifix - 1); + prim(IDN, k, j, i) = + prim(IDN, k, j, ifix - 1) * exp(grav * z / (Rd * temp)); + prim(IPR, k, j, i) = + prim(IPR, k, j, ifix - 1) * exp(grav * z / (Rd * temp)); + prim(IVX, k, j, i) /= 2.; + prim(IVY, k, j, i) /= 2.; + prim(IVZ, k, j, i) /= 2.; + }*/ + +#endif // ENABLE_FIX +} + +void fix_reconstruct_x1(MeshBlock* pmb, AthenaArray<Real>& wl, + AthenaArray<Real>& wr, AthenaArray<Real> const& w, + int k, int j, int il, int iu) {} + +void fix_reconstruct_x2(AthenaArray<Real>& wl, AthenaArray<Real>& wr, + AthenaArray<Real> const& w, int k, int j, int il, + int iu) { +#ifdef ENABLE_FIX + for (int i = il; i <= iu; ++i) { + if (wl(IDN, i) < 0.) wl(IDN, i) = w(IDN, k, j - 1, i); + if (wr(IDN, i) < 0.) wr(IDN, i) = w(IDN, k, j, i); + if (wl(IPR, i) < 0.) wl(IPR, i) = w(IPR, k, j - 1, i); + if (wr(IPR, i) < 0.) wr(IPR, i) = w(IPR, k, j, i); + } +#endif // ENABLE_FIX +} + +void fix_reconstruct_x3(AthenaArray<Real>& wl, AthenaArray<Real>& wr, + AthenaArray<Real> const& w, int k, int j, int il, + int iu) { +#ifdef ENABLE_FIX + for (int i = il; i <= iu; ++i) { + if (wl(IDN, i) < 0.) wl(IDN, i) = w(IDN, k - 1, j, i); + if (wr(IDN, i) < 0.) wr(IDN, i) = w(IDN, k, j, i); + if (wl(IPR, i) < 0.) wl(IPR, i) = w(IPR, k - 1, j, i); + if (wr(IPR, i) < 0.) wr(IPR, i) = w(IPR, k, j, i); + } +#endif // ENABLE_FIX +} + +void fix_implicit_cons(MeshBlock* pmb, AthenaArray<Real>& cons, int il, int iu, + int jl, int ju, int kl, int ku) { +#ifdef ENABLE_FIX + auto pthermo = Thermodynamics::GetInstance(); + auto pcoord = pmb->pcoord; + auto pscm = pmb->pimpl->pscm; + + Real Rd = pthermo->GetRd(); + Real grav = pmb->phydro->hsrc.GetG1(); + + for (int k = kl; k <= ku; ++k) + for (int j = jl; j <= ju; ++j) { + int ifix = il; + + for (; ifix <= iu; ++ifix) { + if ((cons(IDN, k, j, ifix) < 0.) || std::isnan(cons(IDN, k, j, ifix)) || + (cons(IEN, k, j, ifix) < 0.) || std::isnan(cons(IEN, k, j, ifix))) { + break; + } + } + + AirColumn ac(pmb->ncells1); + for (int i = ifix - 1; i <= iu; ++i) { + ac[i].SetType(AirParcel::Type::MassConc); + for (int n = 0; n < NHYDRO; ++n) { + ac[i].w[n] = cons(n, k, j, i); + } + } + + pscm->ConvectiveAdjustment(ac, k, j, ifix - 1, iu); + + for (int i = ifix - 1; i <= iu; ++i) { + for (int n = 0; n < NHYDRO; ++n) { + cons(n, k, j, i) = ac[i].w[n]; + } + } + + /*AirParcel air0(AirParcel::Type::MassConc); + for (int n = 0; n < NHYDRO; ++n) air0.w[n] = cons(n, k, j, ifix - 1); + air0.ToMoleFraction(); + Real temp = air0.w[IDN]; + air0.ToMassFraction(); + + AirParcel air(AirParcel::Type::MassConc); + + for (int i = ifix; i <= iu; ++i) { + for (int n = 0; n < NHYDRO; ++n) air.w[n] = cons(n, k, j, i); + air.ToMassFraction(); + + Real z = pcoord->x1v(i) - pcoord->x1v(ifix - 1); + air.w[IDN] = air0.w[IDN] * exp(grav * z / (Rd * temp)); + air.w[IPR] = air0.w[IPR] * exp(grav * z / (Rd * temp)); + air.w[IVX] /= 2.; + air.w[IVY] /= 2.; + air.w[IVZ] /= 2.; + + air.ToMassConcentration(); + for (int n = 0; n < NHYDRO; ++n) cons(n, k, j, i) = air.w[n]; + }*/ + } +#endif // ENABLE_FIX +} From 2024a4647732f20ae218ba05614f1b71415324d1 Mon Sep 17 00:00:00 2001 From: jeffyujianfu <yujianfu@umich.edu> Date: Wed, 10 Apr 2024 03:48:47 -0400 Subject: [PATCH 22/22] rotation done --- src/exo3/cs_velocity_rotation.cpp | 84 ++++++++- tests/test_cs_velocity_rotation.cpp | 260 ++++++++++++++++++++++++++++ 2 files changed, 342 insertions(+), 2 deletions(-) diff --git a/src/exo3/cs_velocity_rotation.cpp b/src/exo3/cs_velocity_rotation.cpp index 630fb4bb..5b82f230 100644 --- a/src/exo3/cs_velocity_rotation.cpp +++ b/src/exo3/cs_velocity_rotation.cpp @@ -98,11 +98,26 @@ void vel_zab_from_p2(Real *vz, Real *vx, Real *vy, Real a, Real b, *vy = v1; vel_zxy_to_zab(vz, vx, vy, a, b); break; - case 2: + case 3: + // z->-x, x->-y, y->z + *vz = -v2; + *vx = -v3; + *vy = v1; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 4: + // z->x, x->-z, y->y + *vz = v2; + *vx = -v1; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 5: + // z->-y, x->x, y->z + *vz = -v3; + *vx = v2; + *vy = v1; + vel_zxy_to_zab(vz, vx, vy, a, b); break; } } @@ -115,17 +130,32 @@ void vel_zab_from_p3(Real *vz, Real *vx, Real *vy, Real a, Real b, Real v3 = *vy; switch (panel) { case 1: - // z->x, x->-z, y->y + // z->-x, x->z, y->y *vz = -v2; *vx = v1; *vy = v3; vel_zxy_to_zab(vz, vx, vy, a, b); break; case 2: + // z->y, x->-z, y->-x + *vz = v3; + *vx = -v1; + *vy = -v2; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 5: + // z->x, x->-z, y->y + *vz = v2; + *vx = -v1; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 6: + // z->-y, x->z, y->-x + *vz = -v3; + *vx = v1; + *vy = -v2; + vel_zxy_to_zab(vz, vx, vy, a, b); break; } } @@ -145,10 +175,25 @@ void vel_zab_from_p4(Real *vz, Real *vx, Real *vy, Real a, Real b, vel_zxy_to_zab(vz, vx, vy, a, b); break; case 2: + // z->-x, x->z, y->y + *vz = -v2; + *vx = v1; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 5: + // z->-y, x->z, y->-x + *vz = -v3; + *vx = v1; + *vy = -v2; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 6: + // z->x, x->-z, y->y + *vz = v2; + *vx = -v1; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); break; } } @@ -161,12 +206,32 @@ void vel_zab_from_p5(Real *vz, Real *vx, Real *vy, Real a, Real b, Real v3 = *vy; switch (panel) { case 2: + // z->y, x->x, y->-z + *vz = v3; + *vx = v2; + *vy = -v1; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 3: + // z->-x, x->z, y->y + *vz = -v2; + *vx = v1; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 4: + // z->x, x->-y, y->-z + *vz = v2; + *vx = -v3; + *vy = -v1; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 6: + // z->-y, x->-x, y->-z + *vz = -v3; + *vx = -v2; + *vy = -v1; + vel_zxy_to_zab(vz, vx, vy, a, b); break; } } @@ -186,10 +251,25 @@ void vel_zab_from_p6(Real *vz, Real *vx, Real *vy, Real a, Real b, vel_zxy_to_zab(vz, vx, vy, a, b); break; case 3: + // z->x, x->-y, y->-z + *vz = v2; + *vx = -v3; + *vy = -v1; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 4: + // z->-x, x->z, y->y + *vz = -v2; + *vx = v1; + *vy = v3; + vel_zxy_to_zab(vz, vx, vy, a, b); break; case 5: + // z->-y, x->-x, y->-z + *vz = -v3; + *vx = -v2; + *vy = -v1; + vel_zxy_to_zab(vz, vx, vy, a, b); break; } } diff --git a/tests/test_cs_velocity_rotation.cpp b/tests/test_cs_velocity_rotation.cpp index c64f02fd..e0536841 100644 --- a/tests/test_cs_velocity_rotation.cpp +++ b/tests/test_cs_velocity_rotation.cpp @@ -80,6 +80,266 @@ TEST(vel_zab_from_test, test_case_1_to_6_to_1) { } } +TEST(vel_zab_from_test, test_case_2_to_1_to_2) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p2(vz, vx, vy, PI/5*2, PI/8*3, 1); + CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 2); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_2_to_3_to_2) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p2(vz, vx, vy, PI/5*2, PI/8*3, 3); + CubedSphereUtility::vel_zab_from_p3(vz, vx, vy, PI/5*2, PI/8*3, 2); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_2_to_4_to_2) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p2(vz, vx, vy, PI/5*2, PI/8*3, 4); + CubedSphereUtility::vel_zab_from_p4(vz, vx, vy, PI/5*2, PI/8*3, 2); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_2_to_5_to_2) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p2(vz, vx, vy, PI/5*2, PI/8*3, 5); + CubedSphereUtility::vel_zab_from_p5(vz, vx, vy, PI/5*2, PI/8*3, 2); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_3_to_1_to_3) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p3(vz, vx, vy, PI/5*2, PI/8*3, 1); + CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 3); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_3_to_2_to_3) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p3(vz, vx, vy, PI/5*2, PI/8*3, 2); + CubedSphereUtility::vel_zab_from_p2(vz, vx, vy, PI/5*2, PI/8*3, 3); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_3_to_5_to_3) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p3(vz, vx, vy, PI/5*2, PI/8*3, 5); + CubedSphereUtility::vel_zab_from_p5(vz, vx, vy, PI/5*2, PI/8*3, 3); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_3_to_6_to_3) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p3(vz, vx, vy, PI/5*2, PI/8*3, 6); + CubedSphereUtility::vel_zab_from_p6(vz, vx, vy, PI/5*2, PI/8*3, 3); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_4_to_2_to_4) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p4(vz, vx, vy, PI/5*2, PI/8*3, 2); + CubedSphereUtility::vel_zab_from_p2(vz, vx, vy, PI/5*2, PI/8*3, 4); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_4_to_1_to_4) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p4(vz, vx, vy, PI/5*2, PI/8*3, 1); + CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 4); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_4_to_5_to_4) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p4(vz, vx, vy, PI/5*2, PI/8*3, 5); + CubedSphereUtility::vel_zab_from_p5(vz, vx, vy, PI/5*2, PI/8*3, 4); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_4_to_6_to_4) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p4(vz, vx, vy, PI/5*2, PI/8*3, 6); + CubedSphereUtility::vel_zab_from_p6(vz, vx, vy, PI/5*2, PI/8*3, 4); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_5_to_2_to_5) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p5(vz, vx, vy, PI/5*2, PI/8*3, 2); + CubedSphereUtility::vel_zab_from_p2(vz, vx, vy, PI/5*2, PI/8*3, 5); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_5_to_3_to_5) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p5(vz, vx, vy, PI/5*2, PI/8*3, 3); + CubedSphereUtility::vel_zab_from_p3(vz, vx, vy, PI/5*2, PI/8*3, 5); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_5_to_4_to_5) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p5(vz, vx, vy, PI/5*2, PI/8*3, 4); + CubedSphereUtility::vel_zab_from_p4(vz, vx, vy, PI/5*2, PI/8*3, 5); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_5_to_6_to_5) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p5(vz, vx, vy, PI/5*2, PI/8*3, 6); + CubedSphereUtility::vel_zab_from_p6(vz, vx, vy, PI/5*2, PI/8*3, 5); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_6_to_1_to_6) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p6(vz, vx, vy, PI/5*2, PI/8*3, 1); + CubedSphereUtility::vel_zab_from_p1(vz, vx, vy, PI/5*2, PI/8*3, 6); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_6_to_3_to_6) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p6(vz, vx, vy, PI/5*2, PI/8*3, 3); + CubedSphereUtility::vel_zab_from_p3(vz, vx, vy, PI/5*2, PI/8*3, 6); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_6_to_4_to_6) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p6(vz, vx, vy, PI/5*2, PI/8*3, 4); + CubedSphereUtility::vel_zab_from_p4(vz, vx, vy, PI/5*2, PI/8*3, 6); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + +TEST(vel_zab_from_test, test_case_6_to_5_to_6) { + Real result[3] = {1,2,3}; + Real *vz = result; + Real *vx = result + 1; + Real *vy = result + 2; + Real expected_result[3] = {1,2,3}; + CubedSphereUtility::vel_zab_from_p6(vz, vx, vy, PI/5*2, PI/8*3, 5); + CubedSphereUtility::vel_zab_from_p5(vz, vx, vy, PI/5*2, PI/8*3, 6); + for (int i = 0; i < 3; i++) { + EXPECT_NEAR(result[i], expected_result[i], 1e-5); + } +} + int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS();