calculate average temperature in mug

This commit is contained in:
jakob.schratter 2026-01-26 09:20:41 +01:00
commit e458b93b28
5 changed files with 5398 additions and 5361 deletions

View file

@ -31,7 +31,7 @@ int main(int argc, char **argv )
// ##########################################
double dt = 1.0; // time step
int steps = 20; // number of time iterations
//int steps = 200; // number of time iterations
double u0_mug = 18.0;
double u0_fluid = 80.0;
@ -76,9 +76,12 @@ int main(int argc, char **argv )
mesh_c.Init_Solution_mult(uv, 1, [u0_fluid](double x, double y) -> double { return u0_fluid; }); // fluid
mesh_c.Init_Solution_mult(uv, 2, [u0_air](double x, double y) -> double { return u0_air; }); // air
//mesh_c.Visualize(uv);
auto t3 = system_clock::now(); // start timer
for (int step = 0; step < steps; ++step)
double average_cup_temperature = u0_mug;
while (average_cup_temperature < 67)
//for (int step = 0; step < steps; ++step)
{
vector<double> G(Mdt.Nrows(), 0.0);
Mdt.Mult(G, uv); // G = M/dt * u_{n}
@ -91,6 +94,9 @@ int main(int argc, char **argv )
JacobiSolve(SK, H, uv); // solve: (M/dt + K + C) * u_{n+1} = F + M/dt * u_{n}
// ----- SK ----- ------ H -------
average_cup_temperature = mesh_c.AverageVectorFunction_perSubdomain(uv, 0);
cout << "Average cup temperature: " << average_cup_temperature << endl;
}
auto t4 = system_clock::now(); // stop timer