Add new tutorial: two-scale-heat-conduction#343
Conversation
MakisH
left a comment
There was a problem hiding this comment.
Some first comments on general structure- and documentation-related aspects. I have not reviewed or executed the macro.py and micro.py.
Co-authored-by: Gerasimos Chourdakis <[email protected]>
Co-authored-by: Gerasimos Chourdakis <[email protected]>
MakisH
left a comment
There was a problem hiding this comment.
I tried running the tutorial, but I faced some issues.
By the way, even if I resolve these issues, I guess it will later on complain about the preCICE v2/v3 config clash. Should I get the micro-manager from develop, or from some other branch?
The tutorial in its current form works with the develop branch of the Micro Manager. In the Micro Manager repo, we have precice/micro-manager#51 in which the preCICE v3 modifications are being done. Shall I already modify this tutorial for preCICE v3? |
There was a problem hiding this comment.
I now pulled and ran again. The simulation completed! 🚀
The tutorial in its current form works with the develop branch of the Micro Manager. In the Micro Manager repo, we have precice/micro-manager#51 in which the preCICE v3 modifications are being done. Shall I already modify this tutorial for preCICE v3?
Since this is targeting develop, and develop has already been ported, I would say yes: it needs to be ported to v3-format.
|
@MakisH The file |
MakisH
left a comment
There was a problem hiding this comment.
I ran the micro-manager with 4 ranks (partitioning 2x2) and the macro-nutils in serial. After a while, I got both participants crashing, each one complaining about communication / blaming the other:
macro-nutils:
macro-1.vtk
optimize > solve > solving 20 dof system to machine precision using arnoldi solver
optimize > solve > solver returned with residual 2e-16
optimize > constrained 20/20 dofs
optimize > optimum value -1.78e-15
optimize > solve > solving 80 dof system to machine precision using arnoldi solver
optimize > solve > solver returned with residual 5e-16
optimize > constrained 80/80 dofs
optimize > optimum value 4.44e-16
solve > solving 19 dof system to machine precision using arnoldi solver
solve > solver returned with residual 8e-16
(0) 17:27:48 [com::SocketCommunication]:685 in receive: ERROR: Receiving data from another participant (using sockets) failed with a system error: read: Interrupted system call. This often means that the other participant exited with an error (look there).
micro-nutils:
(0) 17:30:11 [cplscheme::BaseCouplingScheme]:680 in measureConvergence: relative convergence measure: relative two-norm diff of data "concentration" = 1.74e-02, limit = 1.00e-03, normalization = 3.41e+00, conv = false
(0) 17:30:11 [com::SocketCommunication]:489 in send: ERROR: Sending data to another participant (using sockets) failed with a system error: write: Broken pipe. This often means that the other participant exited with an error (look there).
micro-manager-config.json.txt
micro-manager.log
precice-Micro-Manager-convergence.log
In the last two weeks, a new version of the Micro Manager was released, and the |
|
I am already on the latest develop: 593cf5a1ef9178cf7b789c49c79724ec3fbf3614 The default decomposition (2x1) and it works. |
This PR adds a new tutorial: two-scale heat conduction. In this tutorial, one macro-scale simulation is coupled to several micro-scale simulations. The macro-micro coupling is done with preCICE and the Micro Manager.
Both the macro and micro side are solved using Nutils. In a separate PR, DuMux will be added as a participant on both scales.
This tutorial was initially developed in https://github.com/IshaanDesai/coupled-heat-conduction and is now being moved into the preCICE project via this PR.