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

Fixing the matrix setter.

parent 8359ecc5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ enumerate( const tnlGrid< Dimensions, Real, Device, Index >& mesh,
           const RealType& dofVectorCoefficient,
           const RealType& time ) const
{
   if( DeviceType::DeviceType == tnlHostDevice )
   if( ( tnlDeviceEnum ) DeviceType::DeviceType == tnlHostDevice )
   {
      TraverserUserData userData( time, function, u, functionCoefficient, dofVectorCoefficient );
      tnlTraverser< MeshType, EntityDimensions > meshTraverser;
@@ -109,7 +109,7 @@ enumerate( const tnlGrid< Dimensions, Real, Device, Index >& mesh,
                                                      userData );

   }
   if( DeviceType::DeviceType == tnlCudaDevice )
   if( ( tnlDeviceEnum ) DeviceType::DeviceType == tnlCudaDevice )
   {
      RealType* kernelTime = tnlCuda::passToDevice( time );
      Function* kernelFunction = tnlCuda::passToDevice( function );
+26 −0
Original line number Diff line number Diff line
@@ -143,6 +143,19 @@ class tnlMatrixSetter< tnlGrid< Dimensions, Real, Device, Index >,
                     userData.boundaryConditions->getLinearSystemRowLength( mesh, index, coordinates );
         }

#ifdef HAVE_CUDA
         __device__ __host__
#endif         
         static void processFace( const MeshType& mesh,
                                  TraversalUserData& userData,
                                  const IndexType index,
                                  const CoordinatesType& coordinates )
         {
            ( *userData.rowLengths )[ index ] =
                     userData.boundaryConditions->getLinearSystemRowLength( mesh, index, coordinates );
         }
         

   };

   class TraversalInteriorEntitiesProcessor
@@ -161,6 +174,19 @@ class tnlMatrixSetter< tnlGrid< Dimensions, Real, Device, Index >,
                     userData.differentialOperator->getLinearSystemRowLength( mesh, index, coordinates );
         }
         
#ifdef HAVE_CUDA
         __device__ __host__
#endif
         static void processFace( const MeshType& mesh,
                                  TraversalUserData& userData,
                                  const IndexType index,
                                  const CoordinatesType& coordinates )
         {
            ( *userData.rowLengths )[ index ] =
                     userData.differentialOperator->getLinearSystemRowLength( mesh, index, coordinates );
         }
         

   };

};