Neko
0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
cuda_filters.f90
Go to the documentation of this file.
1
! Copyright (c) 2024, The Neko Authors
2
! All rights reserved.
3
!
4
! Redistribution and use in source and binary forms, with or without
5
! modification, are permitted provided that the following conditions
6
! are met:
7
!
8
! * Redistributions of source code must retain the above copyright
9
! notice, this list of conditions and the following disclaimer.
10
!
11
! * Redistributions in binary form must reproduce the above
12
! copyright notice, this list of conditions and the following
13
! disclaimer in the documentation and/or other materials provided
14
! with the distribution.
15
!
16
! * Neither the name of the authors nor the names of its
17
! contributors may be used to endorse or promote products derived
18
! from this software without specific prior written permission.
19
!
20
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
! "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
! LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23
! FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24
! COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25
! INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26
! BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27
! LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28
! CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
! LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30
! ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31
! POSSIBILITY OF SUCH DAMAGE.
32
34
module
cuda_filters
35
use
num_types
,
only
:
c_rp
36
implicit none
37
private
38
39
public
::
cuda_smooth_step
,
cuda_step_function
,
cuda_permeability
40
41
! Interfaces for the backend functions
42
interface
43
subroutine
cuda_smooth_step
(x, edge0, edge1, n) &
44
bind(c, name = "cuda_smooth_step")
45
use,
intrinsic
:: iso_c_binding, only: c_ptr, c_int
46
import
c_rp
47
type
(c_ptr),
value
:: x
48
real
(c_rp) :: edge0, edge1
49
integer(c_int)
:: n
50
end subroutine
cuda_smooth_step
51
52
subroutine
cuda_step_function
(x, edge, left, right, n) &
53
bind(c, name = "cuda_step_function")
54
use,
intrinsic
:: iso_c_binding, only: c_ptr, c_int
55
import
c_rp
56
type
(c_ptr),
value
:: x
57
real
(c_rp) :: edge, left, right
58
integer(c_int)
:: n
59
end subroutine
cuda_step_function
60
61
subroutine
cuda_permeability
(x, k_0, k_1, q, n) &
62
bind(c, name = "cuda_permeability")
63
use,
intrinsic
:: iso_c_binding, only: c_ptr, c_int
64
import
c_rp
65
type
(c_ptr),
value
:: x
66
real
(c_rp) :: k_0, k_1, q
67
integer(c_int)
:: n
68
end subroutine
cuda_permeability
69
end interface
70
71
end module
cuda_filters
cuda_filters::cuda_permeability
Definition
cuda_filters.f90:61
cuda_filters::cuda_smooth_step
Definition
cuda_filters.f90:43
cuda_filters::cuda_step_function
Definition
cuda_filters.f90:52
cuda_filters
Cuda interface binding for filters.
Definition
cuda_filters.f90:34
num_types
Definition
num_types.f90:1
num_types::c_rp
integer, parameter, public c_rp
Definition
num_types.f90:13
src
source_terms
bcknd
device
cuda
cuda_filters.f90
Generated on Mon Dec 23 2024 03:38:14 for Neko by
1.9.8