Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
scalar_residual_cpu.f90
Go to the documentation of this file.
1
4 use ax_product, only : ax_t
5 use field, only : field_t
6 use coefs, only : coef_t
7 use space, only : space_t
8 use mesh, only : mesh_t
9 use num_types, only : rp
10 use math, only : copy, cfill
11 use field, only : field_t
12 use mesh, only : mesh_t
13 use ax_product, only : ax_t
14 use space, only : space_t
15 use coefs, only : coef_t
16 implicit none
17 private
18
20 type, public, extends(scalar_residual_t) :: scalar_residual_cpu_t
21 contains
23 procedure, nopass :: compute => scalar_residual_cpu_compute
25
26contains
27
41 subroutine scalar_residual_cpu_compute(Ax, s, s_res, f_Xh, c_Xh, msh, Xh, &
42 lambda, rhocp, bd, dt, n)
43 class(ax_t), intent(in) :: Ax
44 type(mesh_t), intent(inout) :: msh
45 type(space_t), intent(inout) :: Xh
46 type(field_t), intent(inout) :: s
47 type(field_t), intent(inout) :: s_res
48 type(field_t), intent(in) :: f_Xh
49 type(coef_t), intent(inout) :: c_Xh
50 type(field_t), intent(in) :: lambda
51 real(kind=rp), intent(in) :: rhocp
52 real(kind=rp), intent(in) :: bd
53 real(kind=rp), intent(in) :: dt
54 integer, intent(in) :: n
55 integer :: i
56
57 call copy(c_xh%h1, lambda%x, n)
58 call cfill(c_xh%h2, rhocp * bd / dt, n)
59
60 c_xh%ifh2 = .true.
61
62 call ax%compute(s_res%x, s%x, c_xh, msh, xh)
63
64 do i = 1, n
65 s_res%x(i,1,1,1) = (-s_res%x(i,1,1,1)) + f_xh%x(i,1,1,1)
66 end do
67
68 end subroutine scalar_residual_cpu_compute
69
70end module scalar_residual_cpu
Defines a Matrix-vector product.
Definition ax.f90:34
Coefficients.
Definition coef.f90:34
Defines a field.
Definition field.f90:34
Definition math.f90:60
subroutine, public cfill(a, c, n)
Set all elements to a constant c .
Definition math.f90:347
subroutine, public copy(a, b, n)
Copy a vector .
Definition math.f90:238
Defines a mesh.
Definition mesh.f90:34
integer, parameter, public rp
Global precision used in computations.
Definition num_types.f90:12
Residuals in the scalar equation (CPU version).
subroutine scalar_residual_cpu_compute(ax, s, s_res, f_xh, c_xh, msh, xh, lambda, rhocp, bd, dt, n)
Compute the residual.
Defines the residual for the scalar transport equation.
Defines a function space.
Definition space.f90:34
Base type for a matrix-vector product providing .
Definition ax.f90:43
Coefficients defined on a given (mesh, ) tuple. Arrays use indices (i,j,k,e): element e,...
Definition coef.f90:55
Abstract type to compute scalar residual.
Wrapper type for the routine to compute the scalar residual on the CPU.
The function space for the SEM solution fields.
Definition space.f90:62