From 1fc2925f8f37b0b6bbd0349221f2a55383df88c2 Mon Sep 17 00:00:00 2001 From: ParkSuMin Date: Mon, 29 Sep 2025 19:21:04 +0300 Subject: [PATCH] Add C-part to local matrix for cubic element --- Solver.cpp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Solver.cpp b/Solver.cpp index 341c0bb..6234ff3 100644 --- a/Solver.cpp +++ b/Solver.cpp @@ -91,25 +91,25 @@ void Solver::Execute_Cubic(double val1, double val2) { VectorXd local_load(4); // Формирование локальной матрицы жёсткости - local(0, 0) = -A * 37.0 / 10.0 / L + B * (-1.0) / 2.0; - local(0, 1) = -A * (-189.0) / 40.0 / L + B * 57.0 / 80.0; - local(0, 2) = -A * 27.0 / 20.0 / L + B * (-3.0) / 10.0; - local(0, 3) = -A * (-13.0) / 40.0 / L + B * 7.0 / 80.0; + local(0, 0) = -A * 37.0 / 10.0 / L + B * (-1.0) / 2.0 + C * 8. * L / 105.; + local(0, 1) = -A * (-189.0) / 40.0 / L + B * 57.0 / 80.0 + C * 33. * L / 560.; + local(0, 2) = -A * 27.0 / 20.0 / L + B * (-3.0) / 10.0 - C * 3. * L / 140.; + local(0, 3) = -A * (-13.0) / 40.0 / L + B * 7.0 / 80.0 + C * 19. * L / 1680.; - local(1, 0) = -A * (-189.0) / 40.0 / L + B * (-57.0) / 80.0; - local(1, 1) = -A * 54.0 / 5.0 / L; - local(1, 2) = -A * (-297.0) / 40.0 / L + B * 81.0 / 80.0; - local(1, 3) = -A * 27.0 / 20.0 / L + B * (-3.0) / 10.0; + local(1, 0) = -A * (-189.0) / 40.0 / L + B * (-57.0) / 80.0 + C * 33. * L / 560.; + local(1, 1) = -A * 54.0 / 5.0 / L + C * 27. * L / 70.; + local(1, 2) = -A * (-297.0) / 40.0 / L + B * 81.0 / 80.0 - C * 27. * L / 560.; + local(1, 3) = -A * 27.0 / 20.0 / L + B * (-3.0) / 10.0 - C * 3. * L / 140.; - local(2, 0) = -A * 27.0 / 20.0 / L + B * 3.0 / 10.0; - local(2, 1) = -A * (-297.0) / 40.0 / L + B * (-81.0) / 80.0; - local(2, 2) = -A * 54.0 / 5.0 / L; - local(2, 3) = -A * (-189.0) / 40.0 / L + B * 57.0 / 80.0; + local(2, 0) = -A * 27.0 / 20.0 / L + B * 3.0 / 10.0 - C * 3. * L / 140.; + local(2, 1) = -A * (-297.0) / 40.0 / L + B * (-81.0) / 80.0 - C * 27. * L / 560.; + local(2, 2) = -A * 54.0 / 5.0 / L + C * 27. * L / 70.; + local(2, 3) = -A * (-189.0) / 40.0 / L + B * 57.0 / 80.0 + C * 33. * L / 560.; - local(3, 0) = -A * (-13.0) / 40.0 / L + B * (-7.0) / 80.0; - local(3, 1) = -A * 27.0 / 20.0 / L + B * 3.0 / 10.0; - local(3, 2) = -A * (-189.0) / 40.0 / L + B * (-57.0) / 80.0; - local(3, 3) = -A * 37.0 / 10.0 / L + B * 1.0 / 2.0; + local(3, 0) = -A * (-13.0) / 40.0 / L + B * (-7.0) / 80.0 + C * 19. * L / 1680.; + local(3, 1) = -A * 27.0 / 20.0 / L + B * 3.0 / 10.0 - C * 3. * L / 140.; + local(3, 2) = -A * (-189.0) / 40.0 / L + B * (-57.0) / 80.0 + C * 33. * L / 560.; + local(3, 3) = -A * 37.0 / 10.0 / L + B * 1.0 / 2.0 + C * 8. * L / 105.; // Формирование локального вектора нагрузки local_load(0) = -D * L / 8.0;