Thank you!, the method that you give me to stop the evolution, works perfectly. However, there is an error, I can't read the output data as initial data for my Brill wave evolution.

My thorn IDBrillMoL evolves the conformal factor (which I named phi because the initial data is obtained through a wave-like equation), and when the criteria is reached, it stops the evolution and saves a checkpoint with that iteration. For the evolution I wrote a thorn named BrillEvolve and I assigned memory to a variable named "brillpsi" which will store the initial conformal factor. When I read the data (checkpoint) I got the error:  No matching variable found for 'IDBRILLMOL::phi'

According to the readingfile interface, I can read a variable and set in a different variable with the option alias, so, I try

IO::filereader_ID_vars  = "BrillEvolve::brillpsi{alias='IDBRILLMOL::phi'}"

but I got the error above described. Can you help me with this? Am I misunderstanding how the readingfile interface works?

Erik


El lun., 14 oct. 2019 a las 9:44, Haas, Roland (<rhaas@illinois.edu>) escribió:
Hello Erik,

as to how to decide to stop: the simplest way would be to compute a
pointwise stopping criterion (maybe magnitude of the right-hand-side or
so) then do a reduction on it using the CCTK_Reduce function
(assuming you are using Carpet), see eg. the code in Hydro_Analysis to
compute the center of mass:

https://bitbucket.org/einsteintoolkit/einsteinanalysis/src/master/Hydro_Analysis/src/CoreCentroid.c#lines-100

the function itself is documented here:

https://www.einsteintoolkit.org/usersguide/UsersGuidech9.html#verbatim-63

Once you have decided to stop, terminate the simulation by calling
CCTK_TerminateNext
(https://www.einsteintoolkit.org/referencemanual/ReferenceManualch2.html#x4-192000A2)
making sure to have enabled the option to write a checkpoint when
terminating (io::checkpoint_on_terminate = yes).

You can read data from the checkpoint as initial data using the
filereader interface

https://www.einsteintoolkit.org/thornguide/CactusBase/IOUtil/documentation.html#x1-1000010

and if you need to change grid structure, you can use the
ReadInterpolate thorn
(https://github.com/rhaas80/ReadInterpolate/tree/master/ReadInterpolate),
which is however a bit more complex to use.

If you need to change data in between what was checkpointed and what
needs to be evolved you will have to add routines to the INITIAL bin
after IOUtil_RecoverIDFromDatafiles (see IOUtil's schedule.ccl).

Hope this helps getting you started.

Yours,
Roland

> Dear all
>
> I'm trying to construct Brill wave initial data by transforming the
> elliptic pde equation for the conformal factor in to a wave-like equation
> with a source. After reaching a stationary state, I want to stop the
> evolution and give the stationary state as an initial data for the BSSN
> system.
>
> I'm evolving the wave-like equation with MoL and my question is, How can I
> stop the MoL evolution if the solution reaches the numerical tolerance and
> then pass it as initial data?
>
> Erik



--
My email is as private as my paper mail. I therefore support encrypting
and signing email messages. Get my PGP key from http://pgp.mit.edu .