Neko
1.99.2
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
regularization_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
!
33
submodule(
regularization
) regularization_fctry
34
use
entropy_viscosity
,
only
:
entropy_viscosity_t
35
use
utils
,
only
:
neko_error
36
implicit none
37
38
contains
39
40
module
subroutine regularization_factory(object, type_name, json, &
41
coef, dof, reg_coeff)
42
class
(regularization_t),
allocatable
,
intent(inout)
:: object
43
character(len=*)
,
intent(in)
:: type_name
44
type
(json_file),
intent(inout)
:: json
45
type
(coef_t),
intent(in)
,
target
:: coef
46
type
(dofmap_t),
intent(in)
,
target
:: dof
47
type
(field_t),
intent(in)
,
target
:: reg_coeff
48
49
if
(
allocated
(object))
then
50
call
object%free()
51
deallocate
(object)
52
end if
53
54
select case
(trim(type_name))
55
case
(
'entropy'
,
'entropy_viscosity'
)
56
allocate
(
entropy_viscosity_t
::object)
57
case default
58
call
neko_error
(
'Unknown regularization type: '
// trim(type_name))
59
end select
60
61
call
object%init(json, coef, dof, reg_coeff)
62
63
end subroutine
regularization_factory
64
65
end
submodule regularization_fctry
66
utils::neko_error
Definition
utils.f90:42
entropy_viscosity
Definition
entropy_viscosity.f90:33
regularization
Definition
regularization.f90:33
utils
Utilities.
Definition
utils.f90:35
entropy_viscosity::entropy_viscosity_t
Definition
entropy_viscosity.f90:68
src
fluid
regularization_fctry.f90
Generated on Wed Jan 7 2026 03:54:34 for Neko by
1.9.8