[yt-users] fields in ghost zones

Jean-Claude Passy jcpassy at gmail.com
Wed Jun 2 12:07:51 PDT 2010


Hi Matt,

I will try to explain what my goal is.
I have a 1D profile of a star that is physically at the equilibrium. 
Regarding the problem initialization, I set up the density and the total 
specific energy fields according to the model, velocities equal 0. 
However, the star is not numerically stable so I have to relax it. 
Therefore, I divide the velocity by 2 at each timestep, and I let Enzo 
run for a few dynamical times. Then, I read the last data dump and 
create an relaxed_model.dat:

##########################################################
region = pf.h.region([0.5, 0.5, 0.5], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0])

output = 'relaxed_model.dat'

f = open(output,'w')

print >>f, '# Grid Index rho pressure'

density = region["Density"]

pressure = region["Pressure"]

size = NP.size(density)


for i in range(0,size,1):

            dtmp = density[i]

            ptmp = pressure[i]

            print >>f, "0", i, '%06e' % dtmp, '%06e' % ptmp
##########################################################


so I end up with a file like this:

##########################################################

# Restart file for only one grid

# Grid Index rho pressure

0 0 5.099011e-10 2.568020e+05

0 1 5.099011e-10 2.568020e+05

0 2 5.099011e-10 2.568020e+05
...

##########################################################


Finally, I read index, density, pressure from that previous file and do:

##########################################################

 for (k = 0; k < GridDimension[2]; k++)

      for (j = 0; j < GridDimension[1]; j++)

        for (i = 0; i < GridDimension[0]; i++) {


          index = i + GridDimension[0]*(j + GridDimension[1]*k);

          density  /= DensityUnits;

          pressure /= PressureUnits;

          BaryonField[0][index] = density;

          BaryonField[1][index] = pressure / ((Gamma - 1.0) * density);

##########################################################


The problem is GridDimensions contain the ghost zones so the variable 
index does not match with the actual index read in the file 
relaxed_model.dat. That is why I wanted to have that file values for the 
ghost zones as well.

Does it make sense ? Do you have any suggestion ?

Thanks for your help,


JC

Matthew Turk a écrit :
> Hi Jean-Claude,
>
> There are a couple aspects to this.  The first is that Enzo doesn't
> output the ghost zones -- so any ghost zones handled inside yt are
> generated by yt.  Were Enzo to output the ghost zones, we would
> probably be able to handle this, but it does not.
>
> Derived fields can depend on the generation of ghost zones, but keep
> in mind that these are ghost zones generated by yt.  These ghost zones
> are constructed in a similar manner to how Enzo generates them, but
> there may be minor differences.  You can manually inspect ghost zones
> on a *grid* by calling retrieve_ghost_zones on that grid.
>
> If you could tell us a bit more about your goal, maybe we could help
> out a bit more?
>
> -Matt
>
> On Wed, Jun 2, 2010 at 9:32 AM, Jean-Claude Passy <jcpassy at gmail.com> wrote:
>   
>> Dear all,
>>
>> in order to set up my simulation, I need to access the values of certain
>> fields in the ghost zones.
>> If I do something like:
>>
>> pf = load(data) region = pf.h.region(...) x = region[field]
>>
>> x contains the values of field for the physical grid only. Is there a way I
>> can get the same 1D-array but with the ghost zones included as well ?
>>
>> Thanks for your help,
>>
>> Jean-Claude
>>
>> _______________________________________________
>> yt-users mailing list
>> yt-users at lists.spacepope.org
>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>
>>
>>     
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20100602/c57305a7/attachment.html>


More information about the yt-users mailing list