46 character(len=20) :: SIMCOMPS_KNOWN_TYPES(5) = [character(len=20) :: &
59 module subroutine simulation_component_factory(object, json,
case)
60 class(simulation_component_t),
allocatable,
intent(inout) :: object
61 type(json_file),
intent(inout) :: json
62 class(case_t),
intent(inout),
target :: case
63 character(len=:),
allocatable :: type_name
64 character(len=:),
allocatable :: type_string
68 call json_get_or_default(json,
"is_user", is_user, .false.)
71 call json_get(json,
"type", type_name)
73 if (trim(type_name) .eq.
"vorticity")
then
75 else if (trim(type_name) .eq.
"lambda2")
then
77 else if (trim(type_name) .eq.
"probes")
then
79 else if (trim(type_name) .eq.
"les_model")
then
81 else if (trim(type_name) .eq.
"field_writer")
then
83 else if (trim(type_name) .eq.
"weak_grad")
then
85 else if (trim(type_name) .eq.
"derivative")
then
89 new_line(
'A') //
"- ", .true.)
90 call neko_error(
"Unknown simulation component type: " &
91 // trim(type_name) //
". Known types are: " &
97 call object%init(json,
case)
99 end subroutine simulation_component_factory
102 end submodule simulation_component_fctry
Defines a simulation case.
Implements the derivative_t type.
Implements the field_writer_t type.
A simulation component that computes lambda2 The values are stored in the field registry under the na...
Implements the les_simcomp_t type.
Simulation components are objects that encapsulate functionality that can be fit to a particular comp...
character(:) function, allocatable, public concat_string_array(array, sep, prepend)
Concatenate an array of strings into one string with array items separated by spaces.
Implements the vorticity_t type.
Implements the weak_grad_t type.
A simulation component that computes a derivative of a field. Wraps the duxyz operator.
A simulation component that writes a 3d field to a file.
A simulation component that drives the computation of the SGS viscosity.
A simulation component that computes the vorticity field. Added to the field registry as omega_x,...
A simulation component that computes the weak gradient of a field. Wraps the opgrad operator.