Newer
Older
#ifndef TNLDIRICHLETBOUNDARYCONDITIONS_IMPL_H
#define TNLDIRICHLETBOUNDARYCONDITIONS_IMPL_H
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Function,
typename Real,
typename Index >
bool
tnlDirichletBoundaryConditions< tnlGrid< 1, MeshReal, Device, MeshIndex >, Function, Real, Index >::
setup( const tnlParameterContainer& parameters,
return function.setup( parameters, prefix );
}
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Function,
typename Real,
typename Index >
#ifdef HAVE_CUDA
__device__ __host__
#endif
tnlDirichletBoundaryConditions< tnlGrid< 1, MeshReal, Device, MeshIndex >, Function, Real, Index >::
setBoundaryConditions( const RealType& time,
const MeshType& mesh,
const IndexType index,
const CoordinatesType& coordinates,
DofVectorType& u,
DofVectorType& fu )
{
fu[ index ] = 0;
u[ index ] = function.getValue( mesh.getCellCenter( coordinates ), time );
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Function,
typename Real,
typename Index >
#ifdef HAVE_CUDA
__device__ __host__
#endif
Index
tnlDirichletBoundaryConditions< tnlGrid< 1, MeshReal, Device, MeshIndex >, Function, Real, Index >::
getLinearSystemRowLength( const MeshType& mesh,
const IndexType& index,
const CoordinatesType& coordinates ) const
{
return 1;
}
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Function,
typename Real,
typename Index >
#ifdef HAVE_CUDA
__device__ __host__
#endif
void
tnlDirichletBoundaryConditions< tnlGrid< 1, MeshReal, Device, MeshIndex >, Function, Real, Index >::
updateLinearSystem( const RealType& time,
const MeshType& mesh,
const IndexType& index,
const CoordinatesType& coordinates,
DofVectorType& u,
DofVectorType& b,
IndexType* columns,
RealType* values,
IndexType& rowLength ) const
{
columns[ 0 ] = index;
values[ 0 ] = 1.0;
b[ index ] = function.getValue( mesh.getCellCenter( coordinates ), time );
rowLength = 1;
}
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Function,
typename Real,
typename Index >
bool
tnlDirichletBoundaryConditions< tnlGrid< 2, MeshReal, Device, MeshIndex >, Function, Real, Index >::
setup( const tnlParameterContainer& parameters,
return function.setup( parameters, prefix );
}
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Function,
typename Real,
typename Index >
#ifdef HAVE_CUDA
__device__ __host__
#endif
tnlDirichletBoundaryConditions< tnlGrid< 2, MeshReal, Device, MeshIndex >, Function, Real, Index >::
setBoundaryConditions( const RealType& time,
const MeshType& mesh,
const IndexType index,
const CoordinatesType& coordinates,
DofVectorType& u,
DofVectorType& fu )
{
fu[ index ] = 0;
u[ index ] = function.getValue( mesh.getCellCenter( coordinates ), time );
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Function,
typename Real,
typename Index >
#ifdef HAVE_CUDA
__device__ __host__
#endif
Index
tnlDirichletBoundaryConditions< tnlGrid< 2, MeshReal, Device, MeshIndex >, Function, Real, Index >::
getLinearSystemRowLength( const MeshType& mesh,
const IndexType& index,
const CoordinatesType& coordinates ) const
{
return 1;
}
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Function,
typename Real,
typename Index >
#ifdef HAVE_CUDA
__device__ __host__
#endif
void
tnlDirichletBoundaryConditions< tnlGrid< 2, MeshReal, Device, MeshIndex >, Function, Real, Index >::
updateLinearSystem( const RealType& time,
const MeshType& mesh,
const IndexType& index,
const CoordinatesType& coordinates,
DofVectorType& u,
DofVectorType& b,
IndexType* columns,
RealType* values,
IndexType& rowLength ) const
{
columns[ 0 ] = index;
values[ 0 ] = 1.0;
b[ index ] = function.getValue( mesh.getCellCenter( coordinates ), time );
rowLength = 1;
}
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Function,
typename Real,
typename Index >
bool
tnlDirichletBoundaryConditions< tnlGrid< 3, MeshReal, Device, MeshIndex >, Function, Real, Index >::
setup( const tnlParameterContainer& parameters,
return function.setup( parameters, prefix );
}
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Real,
typename Index >
#ifdef HAVE_CUDA
__device__ __host__
#endif
tnlDirichletBoundaryConditions< tnlGrid< 3, MeshReal, Device, MeshIndex >, Function, Real, Index >::
setBoundaryConditions( const RealType& time,
const MeshType& mesh,
const IndexType index,
const CoordinatesType& coordinates,
DofVectorType& u,
DofVectorType& fu )
{
fu[ index ] = 0;
u[ index ] = function.getValue( mesh.getCellCenter( coordinates ), time );;
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Function,
typename Real,
typename Index >
#ifdef HAVE_CUDA
__device__ __host__
#endif
Index
tnlDirichletBoundaryConditions< tnlGrid< 3, MeshReal, Device, MeshIndex >, Function, Real, Index >::
getLinearSystemRowLength( const MeshType& mesh,
const IndexType& index,
const CoordinatesType& coordinates ) const
{
return 1;
}
template< typename MeshReal,
typename Device,
typename MeshIndex,
typename Function,
typename Real,
typename Index >
#ifdef HAVE_CUDA
__device__ __host__
#endif
void
tnlDirichletBoundaryConditions< tnlGrid< 3, MeshReal, Device, MeshIndex >, Function, Real, Index >::
updateLinearSystem( const RealType& time,
const MeshType& mesh,
const IndexType& index,
const CoordinatesType& coordinates,
DofVectorType& u,
DofVectorType& b,
IndexType* columns,
RealType* values,
IndexType& rowLength ) const
{
columns[ 0 ] = index;
values[ 0 ] = 1.0;
b[ index ] = function.getValue( mesh.getCellCenter( coordinates ), time );
rowLength = 1;
}
#endif /* TNLDIRICHLETBOUNDARYCONDITIONS_IMPL_H */