added simulation (ii), need to tweak parameters
This commit is contained in:
parent
4c5aa92fdd
commit
5f3f2beecb
1 changed files with 38 additions and 1 deletions
|
|
@ -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<double> 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<double>(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<double> G(Mdt.Nrows(), 0.0);
|
||||
// Mdt.Mult(G, uv); // G = M/dt * u_{n}
|
||||
|
||||
// vector<double> 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<microseconds>(t4 - t3); // duration in microseconds
|
||||
// t_diff = static_cast<double>(duration.count()) / 1e6; // overall duration in seconds
|
||||
// cout << "\n\nJacobiSolve: timing in sec. : " << t_diff << endl;
|
||||
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue