Commit f21cfbd7 authored by Tomáš Oberhuber's avatar Tomáš Oberhuber
Browse files

Refactoring the fast sweeping method.

parent 75309419
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -140,11 +140,21 @@ updateCell( MeshFunctionType& u,
                     u[ neighbourEntities.template getEntityIndex< 0,   1 >() ] );
   }

   if( fabs( a ) == tnlTypeInfo< Real >::getMaxValue() || 
       fabs( a ) == tnlTypeInfo< Real >::getMaxValue() )
   if( fabs( a ) == tnlTypeInfo< Real >::getMaxValue() && 
       fabs( b ) == tnlTypeInfo< Real >::getMaxValue() )
      return;
   if( fabs( a - b ) >= h )
   if( fabs( a ) == tnlTypeInfo< Real >::getMaxValue() ||
       fabs( b ) == tnlTypeInfo< Real >::getMaxValue() ||
       fabs( a - b ) >= h )
   {
      tmp = ArgAbsMin( a, b ) + Sign( value ) * h;
         std::cerr << "a = " << a << " b = " << b << " h = " << h 
             << " ArgAbsMin( a, b ) = " << ArgAbsMin( a, b ) << " Sign( value ) = " << Sign( value )
             << " Sign( value ) * h = " << Sign( value ) * h
             << " ArgAbsMin( a, b ) + Sign( value ) * h = " << ArgAbsMin( a, b ) + Sign( value ) * h           
             << " tmp = " << tmp << std::endl;

   }
   else
      tmp = 0.5 * ( a + b + Sign( value ) * sqrt( 2.0 * h * h - ( a - b ) * ( a - b ) ) );

+2 −2
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ solve( const MeshType& mesh,
	}
   aux.save( "aux-1.tnl" );
   
   for( cell.getCoordinates().y() = 0;
   /*for( cell.getCoordinates().y() = 0;
        cell.getCoordinates().y() < mesh.getDimensions().y();
        cell.getCoordinates().y()++ )
	{
@@ -131,6 +131,6 @@ solve( const MeshType& mesh,
               this->updateCell( aux, cell );
         }
      }   
   aux.save( "aux-4.tnl" );
   aux.save( "aux-4.tnl" );*/
}