Neko
1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
euler_res.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
!
33
module
euler_residual
34
use
gather_scatter
,
only
:
gs_t
35
use
ax_product
,
only
:
ax_t
36
use
field
,
only
:
field_t
37
use
coefs
,
only
:
coef_t
38
use
num_types
,
only
:
rp
39
use
runge_kutta_time_scheme
,
only
:
runge_kutta_time_scheme_t
40
implicit none
41
private
42
44
type
,
public
,
abstract
::
euler_rhs_t
45
contains
46
procedure
(
euler_rhs
),
nopass
,
deferred
:: step
47
end type
euler_rhs_t
48
50
abstract
interface
51
subroutine
euler_rhs
(rho_field, m_x, m_y, m_z, E, p, u, v, w, Ax, &
52
coef, gs, h, c_avisc_low, rk_scheme, dt)
53
import
field_t
54
import
ax_t
55
import
gs_t
56
import
coef_t
57
import
rp
58
import
runge_kutta_time_scheme_t
59
type
(
field_t
),
intent(inout)
:: rho_field, m_x, m_y, m_z, E
60
type
(
field_t
),
intent(in)
:: p, u, v, w, h
61
class
(
ax_t
),
intent(inout)
:: Ax
62
type
(
coef_t
),
intent(inout)
:: coef
63
type
(
gs_t
),
intent(inout)
:: gs
64
real
(kind=
rp
) :: c_avisc_low
65
class
(
runge_kutta_time_scheme_t
),
intent(in)
:: rk_scheme
66
real
(kind=
rp
),
intent(in)
:: dt
67
end subroutine
euler_rhs
68
end interface
69
71
interface
72
module
subroutine euler_rhs_factory(object)
73
class
(euler_rhs_t),
allocatable
,
intent(inout)
:: object
74
end subroutine
euler_rhs_factory
75
end interface
76
77
public
:: euler_rhs_factory
78
79
end module
euler_residual
euler_residual::euler_rhs
Abstract interface to evaluate rhs.
Definition
euler_res.f90:51
ax_product
Defines a Matrix-vector product.
Definition
ax.f90:34
coefs
Coefficients.
Definition
coef.f90:34
euler_residual
Definition
euler_res.f90:33
field
Defines a field.
Definition
field.f90:34
gather_scatter
Gather-scatter.
Definition
gather_scatter.f90:34
num_types
Definition
num_types.f90:1
num_types::rp
integer, parameter, public rp
Global precision used in computations.
Definition
num_types.f90:12
runge_kutta_time_scheme
Definition
runge_kutta_scheme.f90:33
ax_product::ax_t
Base type for a matrix-vector product providing .
Definition
ax.f90:43
coefs::coef_t
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
Definition
coef.f90:55
euler_residual::euler_rhs_t
Abstract type to compute rhs.
Definition
euler_res.f90:44
field::field_t
Definition
field.f90:47
gather_scatter::gs_t
Definition
gather_scatter.f90:68
runge_kutta_time_scheme::runge_kutta_time_scheme_t
Definition
runge_kutta_scheme.f90:44
src
fluid
euler_res.f90
Generated on Mon Sep 1 2025 03:49:14 for Neko by
1.9.8