1
0
Fork 0
mirror of https://github.com/cosmo-sims/MUSIC.git synced 2024-09-19 17:03:46 +02:00

and more fixes to the new masking

This commit is contained in:
Oliver Hahn 2013-11-06 23:48:00 +01:00
parent 436882c8d5
commit 503aad8d53
2 changed files with 35 additions and 14 deletions

24
mesh.hh
View file

@ -689,7 +689,7 @@ public:
bhave_refmask = true;
#if 1
for( int ilevel = (int)levelmax()-1; ilevel > (int)levelmin(); --ilevel )
for( int ilevel = (int)levelmax(); ilevel > (int)levelmin(); --ilevel )
{
for( size_t i=0; i<size(ilevel,0); i+=2 )
{
@ -872,11 +872,18 @@ public:
*/
bool is_refined( unsigned ilevel, int i, int j, int k ) const
{
// meaning of the mask:
// -1 = outside of mask
// 0.5 = in mask and refined (i.e. cell exists also on finer level)
// 1 = in mask and not refined (i.e. cell exists only on this level)
//if( ilevel == levelmax() )
// return false;
if( bhave_refmask ){
return (*m_ref_masks[ilevel])(i,j,k) < 0.99;
short v = (*m_ref_masks[ilevel])(i,j,k);
return (v>0.49 && v<0.51);
//return (*m_ref_masks[ilevel-1])(offset(ilevel,0)+i/2,offset(ilevel,1)+j/2,offset(ilevel,2)+k/2) < 0.99;
}
@ -891,10 +898,19 @@ public:
return true;
}
bool is_masked( unsigned ilevel, int i, int j, int k ) const
bool is_in_mask( unsigned ilevel, int i, int j, int k ) const
{
// meaning of the mask:
// -1 = outside of mask
// 0.5 = in mask and refined (i.e. cell exists also on finer level)
// 1 = in mask and not refined (i.e. cell exists only on this level)
if( bhave_refmask ){
return (*m_ref_masks[ilevel-1])(offset(ilevel,0)+i/2,offset(ilevel,1)+j/2,offset(ilevel,2)+k/2) > 0.;
short v = (*m_ref_masks[ilevel])(i,j,k);
return (v>0.);
//return (*m_ref_masks[ilevel-1])(offset(ilevel,0)+i/2,offset(ilevel,1)+j/2,offset(ilevel,2)+k/2) > 0.;
}
return true;

View file

@ -894,8 +894,9 @@ public:
for( unsigned i=0; i<gh.get_grid(ilevel)->size(0); ++i )
for( unsigned j=0; j<gh.get_grid(ilevel)->size(1); ++j )
for( unsigned k=0; k<gh.get_grid(ilevel)->size(2); ++k )
if( ! gh.is_refined(ilevel,i,j,k) )
{
//if( ! gh.is_refined(ilevel,i,j,k) )
if( gh.is_in_mask(ilevel,i,j,k) && !gh.is_refined(ilevel,i,j,k) )
{
if( temp_dat.size() < block_buf_size_ )
temp_dat.push_back( pmass );
else
@ -998,8 +999,9 @@ public:
for( unsigned i=0; i<gh.get_grid(ilevel)->size(0); ++i )
for( unsigned j=0; j<gh.get_grid(ilevel)->size(1); ++j )
for( unsigned k=0; k<gh.get_grid(ilevel)->size(2); ++k )
if( ! gh.is_refined(ilevel,i,j,k) )
{
//if( ! gh.is_refined(ilevel,i,j,k) )
if( gh.is_in_mask(ilevel,i,j,k) && !gh.is_refined(ilevel,i,j,k) )
{
double xx[3];
gh.cell_pos(ilevel, i, j, k, xx);
if( shift != NULL )
@ -1087,8 +1089,9 @@ public:
for( unsigned i=0; i<gh.get_grid(ilevel)->size(0); ++i )
for( unsigned j=0; j<gh.get_grid(ilevel)->size(1); ++j )
for( unsigned k=0; k<gh.get_grid(ilevel)->size(2); ++k )
if( ! gh.is_refined(ilevel,i,j,k) )
{
//if( ! gh.is_refined(ilevel,i,j,k) )
if( gh.is_in_mask(ilevel,i,j,k) && !gh.is_refined(ilevel,i,j,k) )
{
if( temp_data.size() < block_buf_size_ )
temp_data.push_back( (*gh.get_grid(ilevel))(i,j,k) * vfac );
else
@ -1168,8 +1171,9 @@ public:
for( unsigned i=0; i<gh.get_grid(ilevel)->size(0); ++i )
for( unsigned j=0; j<gh.get_grid(ilevel)->size(1); ++j )
for( unsigned k=0; k<gh.get_grid(ilevel)->size(2); ++k )
if( ! gh.is_refined(ilevel,i,j,k) )
{
//if( ! gh.is_refined(ilevel,i,j,k) )
if( gh.is_in_mask(ilevel,i,j,k) && !gh.is_refined(ilevel,i,j,k) )
{
if( temp_data.size() < block_buf_size_ )
temp_data.push_back( (*gh.get_grid(ilevel))(i,j,k) * vfac );
else
@ -1265,8 +1269,9 @@ public:
for( unsigned i=0; i<gh.get_grid(ilevel)->size(0); ++i )
for( unsigned j=0; j<gh.get_grid(ilevel)->size(1); ++j )
for( unsigned k=0; k<gh.get_grid(ilevel)->size(2); ++k )
if( ! gh.is_refined(ilevel,i,j,k) )
{
//if( ! gh.is_refined(ilevel,i,j,k) )
if( gh.is_in_mask(ilevel,i,j,k) && !gh.is_refined(ilevel,i,j,k) )
{
double xx[3];
gh.cell_pos(ilevel, i, j, k, xx);
if( shift != NULL )