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:
parent
436882c8d5
commit
503aad8d53
2 changed files with 35 additions and 14 deletions
24
mesh.hh
24
mesh.hh
|
@ -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;
|
||||
|
|
|
@ -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 )
|
||||
|
|
Loading…
Reference in a new issue