From 5f3f2beecb28d1ab37fecb71d94b3cb7d6d4417f Mon Sep 17 00:00:00 2001 From: "jakob.schratter" Date: Mon, 26 Jan 2026 11:39:43 +0100 Subject: [PATCH] added simulation (ii), need to tweak parameters --- mgrid_2/main.cpp | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/mgrid_2/main.cpp b/mgrid_2/main.cpp index 66053d9..510a453 100644 --- a/mgrid_2/main.cpp +++ b/mgrid_2/main.cpp @@ -70,6 +70,9 @@ int main(int argc, char **argv ) // Timestepping (M/dt + K + C) * u_{n+1} = F + M/dt * u_{n} // ########################################## + + // ################################## SIMULATION (i) ################################## + // Initialize temperature u_0 vector uv(SK.Nrows(), 0.0); // temperature mesh_c.Init_Solution_mult(uv, 0, [u0_mug](double x, double y) -> double { return u0_mug; }); // mug @@ -108,8 +111,42 @@ int main(int argc, char **argv ) double t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds cout << "\n\nJacobiSolve: timing in sec. : " << t_diff << endl; - mesh_c.Visualize(uv); + // // ################################## SIMULATION (ii) ################################## + // double u0_coffee = 85.0; + // mesh_c.Init_Solution_mult(uv, 1, [u0_coffee](double x, double y) -> double { return u0_coffee; }); // fluid + + // t3 = system_clock::now(); // start timer + // double average_coffee_temperature = u0_coffee; + + // time_count = 0; + // while (average_coffee_temperature > 50.0) + // { + // vector G(Mdt.Nrows(), 0.0); + // Mdt.Mult(G, uv); // G = M/dt * u_{n} + + // vector H = fv; + // for (size_t i = 0; i < Mdt.Nrows(); ++i) + // { + // H[i] += G[i]; // H = F + G + // } + + // JacobiSolve(SK, H, uv); // solve: (M/dt + K + C) * u_{n+1} = F + M/dt * u_{n} + // // ----- SK ----- ------ H ------- + + // average_coffee_temperature = mesh_c.AverageVectorFunction_perSubdomain(uv, 1); + // cout << "Average coffee temperature: " << average_coffee_temperature << " after " << time_count << " seconds. " << endl; + // time_count += dt; + // } + // t4 = system_clock::now(); // stop timer + + + // duration = duration_cast(t4 - t3); // duration in microseconds + // t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds + // cout << "\n\nJacobiSolve: timing in sec. : " << t_diff << endl; + + + return 0; } \ No newline at end of file