Hi all.
I'm having a problem, probably in the scheduling, but I'm not able to understand why this is happening. I attached two files .txt where I report the schedule.ccl file of my thorn and the grid parameters in my parfile.
What happen is the following; I have these variables defined in the interface.ccl like this:
CCTK_REAL masscenter_point type = GF Timelevels = 3 tags='Prolongation="none" tensortypealias="Scalar" '
{
masscenterX_point
masscenterY_point
}"mass center to be used in the global reductions"
CCTK_REAL global_masscenter type = SCALAR
{
masscenterX
masscenterY
}"mass center coordinates"
What I want to do is evaluate in every grid point the values for masscenterX_point and masscenterY_point (I do this in the function my_analysis_point_calc) and then integrate them (using CCTK_Reduce) over the entire domain and save the result in the scalar variables masscenterX and masscenterY (and I do it in the function my_analysis_reduce). So far everything seems to work well, if I plot the masscenter it has reasonable values. The problem happens when, in the same thorn, I want to use the values of masscenterX and masscenterY in another function ( my_analysis_modes_point_calc) to evaluate some other variable (let's call it mode_m1) point by point and then integrate it (in my_analysis_modes_reduce).
At the initial time I get a reasonable value for mode_m1, but the second time I print it ( after 12 timesteps) I get nan, the third time I print it (after 24 timesteps) I get a reasonable value and after that it seems to be fine for the rest of the simulation. When I print masscenterX and masscenterY they have reasonable values at every iteration. This is the output:
"
#1:iteration 2:time 3:data
#data columns: 3:masscenterX 4:masscenterY
0 0 2.04233950307922e-07 1.43009709532618e-07
12 0.6 1.64952865679123e-07 1.15302233769628e-07
24 1.2 2.59441645250822e-08 1.8122269479532e-08
#1:iteration 2:time 3:data
#data columns: 3:mode_m1
0 0 5.09771568069084e-09
12 0.6 -nan
24 1.2 5.98971400034287e-10
"
I thought that the problematic line in my code could be this one:
phi = atan((yy-*masscenterY)/(xx-*masscenterX));
if(((xx-*masscenterX)<0.0)){
phi = atan((yy-*masscenterY)/(xx-*masscenterX)) + 3.14159265358979323846;
}
where I try to use the values of masscenterX and masscenterY inside the function "my_analysis_modes_point_calc". If I change that part not using masscenterX and masscenterY I don't get nans anymore in mode_m1.
After doing different tests, I actually found out that if I try to plot scalar output every 4 iterations I get also NaN in masscenter at time 0.2; this is the output in this case:
"
#1:iteration 2:time 3:data
#data columns: 3:masscenterX 4:masscenterY
0 0 2.04233950307922e-07 1.43009709532618e-07
4 0.2 -nan -nan
8 0.4 1.76472702563281e-07 1.23428120452789e-07
12 0.6 1.64952865679123e-07 1.15302233769628e-07
16 0.8 1.05057935424561e-07 7.33797284607643e-08
20 1 5.6677119219615e-08 3.93971526043537e-08
24 1.2 2.59441645250822e-08 1.8122269479532e-08
28 1.4 5.57004919317397e-08 3.90090013497981e-08
32 1.6 1.2454179781868e-08 8.57409404496548e-09
36 1.8 7.81397952778142e-08 5.4397631432516e-08
#1:iteration 2:time 3:data
#data columns: 3:mode_m1
0 0 5.09771568069084e-09
4 0.2 -nan
8 0.4 -nan
12 0.6 -nan
16 0.8 2.49105795013804e-09
20 1 -nan
24 1.2 5.98971400034287e-10
28 1.4 3.14686031011036e-10
32 1.6 2.57981958462494e-10
36 1.8 6.79137649228778e-10
"
I'm not really sure what is going on here, so I hope somebody can explain me where is the mistake. Thank you.
Best,
Fabrizio