Neko
1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
euler_res_fctry.f90
Go to the documentation of this file.
1
! Copyright (c) 2025, 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
submodule(
euler_residual
) euler_res_fctry
35
use
neko_config
,
only
:
neko_bcknd_device
,
neko_bcknd_sx
36
use
euler_res_cpu
,
only
:
euler_res_cpu_t
37
use
euler_res_device
,
only
:
euler_res_device_t
38
use
euler_res_sx
,
only
:
euler_res_sx_t
39
implicit none
40
41
contains
42
47
module
subroutine euler_rhs_factory(object)
48
class
(euler_rhs_t),
allocatable
,
intent(inout)
:: object
49
50
if
(
allocated
(object))
then
51
deallocate
(object)
52
end if
53
54
55
if
(
neko_bcknd_sx
.eq. 1)
then
56
allocate
(
euler_res_sx_t
::object)
57
else
if
(
neko_bcknd_device
.eq. 1)
then
58
allocate
(
euler_res_device_t
::object)
59
else
60
allocate
(
euler_res_cpu_t
::object)
61
end if
62
63
end subroutine
euler_rhs_factory
64
65
end
submodule euler_res_fctry
euler_res_cpu
This module implements CPU-based residual calculations for the Euler equations.
Definition
euler_res_cpu.f90:36
euler_res_device
Definition
euler_res_device.F90:33
euler_res_sx
Definition
euler_res_sx.f90:1
euler_residual
Definition
euler_res.f90:33
neko_config
Build configurations.
Definition
neko_config.f90:34
neko_config::neko_bcknd_sx
integer, parameter neko_bcknd_sx
Definition
neko_config.f90:39
neko_config::neko_bcknd_device
integer, parameter neko_bcknd_device
Definition
neko_config.f90:44
euler_res_cpu::euler_res_cpu_t
Definition
euler_res_cpu.f90:53
euler_res_device::euler_res_device_t
Definition
euler_res_device.F90:49
euler_res_sx::euler_res_sx_t
Definition
euler_res_sx.f90:18
src
fluid
euler_res_fctry.f90
Generated on Thu Sep 4 2025 03:40:40 for Neko by
1.9.8