-
-
Notifications
You must be signed in to change notification settings - Fork 24
Description
Hi,
I have spotted something strange when running the Calculi adapter. In my case, I use a simple Julia script to prescribe nodal values of the force to Calculix based on the mesh deformation and some ODEs that I am solving in Julia.
My precice-config is very simple and the only important bit is that Calculix steers the coupling using <time-window-size value="-1" method="first-participant"/> (serial explicit coupling).
I ran into the case that if an increment is reattempted in Calculix (decreasing time step and redoing that step), the adapter assumes the time step is finished and writes the data to the other participant. The following snapshot of the output shows this. Is this a bug in the adapter?
...
average force= 0.057730
time avg. forc= 0.052465
largest residual force= 6.162211 in node 252 and dof 3
largest increment of disp= 5.167227e-02
largest correction to disp= 2.888942e-03 in node 253 and dof 3
estimated number of iterations till convergence = 32
too slow convergence; the increment size is decreased to 7.812500e-05
the increment is reattempted
Adapter writing coupling data...
Writing DISPLACEMENTS coupling data.
Adapter calling advance()...
---[precice] Time window completed
---[precice] iteration: 1, time-window: 7, time: 0.014375 of 30, max-time-step-size: 29.9856, ongoing: yes, time-window-complete: yes,
Adjusting time step for transient step
precice_dt = 29.985625, ccx_dt = 0.000078 (dtheta = 0.000008, tper = 10.000000) -> dt = 0.000078 (dtheta = 0.000008)
Adapter reading coupling data...
Reading FORCES coupling data.
increment 2 attempt 2
increment size= 7.812500e-05
sum of previous increments=1.562500e-04
actual step time=2.343750e-04
actual total time=1.000023e+01
...
I can make a MWE of this if required. I am happy to link into it if it's confirmed that this is a bug of the adapter, and not from my implementation.
Marin