Skip to content

Commit

Permalink
Merge pull request #357 from Exawind/floating_update_optimization
Browse files Browse the repository at this point in the history
Optimizes System Variable Update for Masses and Springs
  • Loading branch information
ddement authored Feb 26, 2025
2 parents a68ae74 + d14f934 commit 7f06af7
Show file tree
Hide file tree
Showing 55 changed files with 614 additions and 1,583 deletions.
45 changes: 0 additions & 45 deletions src/elements/masses/masses.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,30 +25,7 @@ struct Masses {
View_3 gravity;

Kokkos::View<double* [7]> node_x0; //< Initial position/rotation
Kokkos::View<double* [7]> node_u; //< State: translation/rotation displacement
Kokkos::View<double* [6]> node_u_dot; //< State: translation/rotation velocity
Kokkos::View<double* [6]> node_u_ddot; //< State: translation/rotation acceleration

Kokkos::View<double* [6][6]> qp_Mstar; //< Mass matrix in material frame
Kokkos::View<double* [7]> qp_x; //< Current position/orientation
Kokkos::View<double* [3]> qp_x0;
Kokkos::View<double* [4]> qp_r0;
Kokkos::View<double* [3]> qp_u;
Kokkos::View<double* [3]> qp_u_ddot;
Kokkos::View<double* [4]> qp_r;
Kokkos::View<double* [3]> qp_omega;
Kokkos::View<double* [3]> qp_omega_dot;
Kokkos::View<double* [3][3]> qp_eta_tilde;
Kokkos::View<double* [3][3]> qp_omega_tilde;
Kokkos::View<double* [3][3]> qp_omega_dot_tilde;
Kokkos::View<double* [3]> qp_eta; //< Offset between mass center and elastic axis
Kokkos::View<double* [3][3]> qp_rho; //< Rotational inertia part of mass matrix
Kokkos::View<double* [6]> qp_Fi; //< Inertial force
Kokkos::View<double* [6]> qp_Fg; //< Gravity force
Kokkos::View<double* [6][6]> qp_RR0; //< Global rotation
Kokkos::View<double* [6][6]> qp_Muu; //< Mass matrix in global/inertial frame
Kokkos::View<double* [6][6]> qp_Guu; //< Gyroscopic/inertial damping matrix
Kokkos::View<double* [6][6]> qp_Kuu; //< Inertia stiffness matrix

Kokkos::View<double* [6]> residual_vector_terms;
Kokkos::View<double* [6][6]> stiffness_matrix_terms;
Expand All @@ -62,29 +39,7 @@ struct Masses {
element_freedom_table("element_freedom_table", num_elems),
gravity("gravity"),
node_x0("node_x0", num_elems),
node_u("node_u", num_elems),
node_u_dot("node_u_dot", num_elems),
node_u_ddot("node_u_ddot", num_elems),
qp_Mstar("qp_Mstar", num_elems),
qp_x("qp_x", num_elems),
qp_x0("qp_x0", num_elems),
qp_r0("qp_r0", num_elems),
qp_u("qp_u", num_elems),
qp_u_ddot("qp_u_ddot", num_elems),
qp_r("qp_r", num_elems),
qp_omega("qp_omega", num_elems),
qp_omega_dot("qp_omega_dot", num_elems),
qp_eta_tilde("qp_eta_tilde", num_elems),
qp_omega_tilde("qp_omega_tilde", num_elems),
qp_omega_dot_tilde("qp_omega_dot_tilde", num_elems),
qp_eta("qp_eta", num_elems),
qp_rho("qp_rho", num_elems),
qp_Fi("qp_Fi", num_elems),
qp_Fg("qp_Fg", num_elems),
qp_RR0("qp_RR0", num_elems),
qp_Muu("qp_Muu", num_elems),
qp_Guu("qp_Guu", num_elems),
qp_Kuu("qp_Kuu", num_elems),
residual_vector_terms("residual_vector_terms", num_elems),
stiffness_matrix_terms("stiffness_matrix_terms", num_elems),
inertia_matrix_terms("inertia_matrix_terms", num_elems) {
Expand Down
24 changes: 3 additions & 21 deletions src/elements/springs/springs.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,9 @@ struct Springs {
Kokkos::View<FreedomSignature* [2]> element_freedom_signature;
Kokkos::View<size_t* [2][3]> element_freedom_table; //< Only translational DOFs for springs

Kokkos::View<double* [3]> x0; //< Initial distance vector between nodes
Kokkos::View<double* [3]> u1; //< Displacement of node 1
Kokkos::View<double* [3]> u2; //< Displacement of node 2
Kokkos::View<double* [3]> r; //< Current distance vector between nodes
Kokkos::View<double*> l; //< Current length of springs
Kokkos::View<double*> l_ref; //< Initial length of springs
Kokkos::View<double*> k; //< Spring stiffness coefficients
Kokkos::View<double*> c1; //< First coefficient for force calculation
Kokkos::View<double*> c2; //< Second coefficient for force calculation
Kokkos::View<double* [3]> f; //< Force components
Kokkos::View<double* [3][3]> a; //< Stiffness matrices
Kokkos::View<double* [3][3]> r_tilde; //< Skew-symmetric matrix of r
Kokkos::View<double* [3]> x0; //< Initial distance vector between nodes
Kokkos::View<double*> l_ref; //< Initial length of springs
Kokkos::View<double*> k; //< Spring stiffness coefficients

Kokkos::View<double* [2][3]> residual_vector_terms;
Kokkos::View<double* [2][2][3][3]> stiffness_matrix_terms;
Expand All @@ -42,17 +33,8 @@ struct Springs {
element_freedom_signature("element_freedom_signature", num_elems),
element_freedom_table("element_freedom_table", num_elems),
x0("x0", num_elems),
u1("u1", num_elems),
u2("u2", num_elems),
r("r", num_elems),
l("l", num_elems),
l_ref("l_ref", num_elems),
k("k", num_elems),
c1("c1", num_elems),
c2("c2", num_elems),
f("f", num_elems),
a("a", num_elems),
r_tilde("r_tilde", num_elems),
residual_vector_terms("residual_vector_terms", num_elems),
stiffness_matrix_terms("stiffness_matrix_terms", num_elems) {
Kokkos::deep_copy(num_nodes_per_element, 2); // Always 2 nodes per element
Expand Down
7 changes: 0 additions & 7 deletions src/step/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,10 @@ install(FILES
assemble_constraints_matrix.hpp
assemble_constraints_residual.hpp
assemble_inertia_matrix_beams.hpp
assemble_inertia_matrix_masses.hpp
assemble_residual_vector_beams.hpp
assemble_residual_vector_masses.hpp
assemble_residual_vector_springs.hpp
assemble_stiffness_matrix_beams.hpp
assemble_stiffness_matrix_masses.hpp
assemble_stiffness_matrix_springs.hpp
assemble_system_matrix.hpp
assemble_system_residual_beams.hpp
assemble_system_residual.hpp
assemble_system_residual_masses.hpp
assemble_tangent_operator.hpp
calculate_convergence_error.hpp
predict_next_state.hpp
Expand Down
46 changes: 0 additions & 46 deletions src/step/assemble_inertia_matrix_masses.hpp

This file was deleted.

36 changes: 0 additions & 36 deletions src/step/assemble_residual_vector_masses.hpp

This file was deleted.

35 changes: 0 additions & 35 deletions src/step/assemble_residual_vector_springs.hpp

This file was deleted.

36 changes: 0 additions & 36 deletions src/step/assemble_stiffness_matrix_masses.hpp

This file was deleted.

51 changes: 0 additions & 51 deletions src/step/assemble_stiffness_matrix_springs.hpp

This file was deleted.

22 changes: 0 additions & 22 deletions src/step/assemble_system_residual_beams.hpp

This file was deleted.

22 changes: 0 additions & 22 deletions src/step/assemble_system_residual_masses.hpp

This file was deleted.

Loading

0 comments on commit 7f06af7

Please sign in to comment.