off_solver_object Module

module~~off_solver_object~~UsesGraph module~off_solver_object off_solver_object module~off_error_object off_error_object module~off_error_object->module~off_solver_object finer finer finer->module~off_solver_object penf penf penf->module~off_solver_object penf->module~off_error_object iso_fortran_env iso_fortran_env iso_fortran_env->module~off_error_object
Help

OFF solver object definition and implementation.

Used By

module~~off_solver_object~~UsedByGraph module~off_solver_object off_solver_object module~off_simulation_object off_simulation_object module~off_solver_object->module~off_simulation_object module~off_objects off_objects module~off_solver_object->module~off_objects module~off_simulation_object->module~off_objects program~off_test_save_load_file_parameters off_test_save_load_file_parameters module~off_objects->program~off_test_save_load_file_parameters program~off_test_load_file_parameters off_test_load_file_parameters module~off_objects->program~off_test_load_file_parameters program~off_test_save_load_file_grid off_test_save_load_file_grid module~off_objects->program~off_test_save_load_file_grid
Help


Variables

TypeVisibility AttributesNameInitial
character(len=6), private, parameter:: INI_SECTION_NAME ='solver'

INI (config) file section name containing the solver parameters.


Derived Types

type, public :: solver_object

Solver object class.

Components

TypeVisibility AttributesNameInitial
real(kind=R8P), public :: artificial_viscosity =0._R8P

Artifiical viscosity.

real(kind=R8P), public :: chimera_forcing =0._R8P

Chimera forcing coefficient.

character(len=:), public, allocatable:: convective_operator

Convective operator model: tvd, eno3, weno3(5-17)…

character(len=:), public, allocatable:: diffusive_operator

Diffusive operator model: centered2(4-10)…

type(error_object), public :: error

Errors handler.

real(kind=R8P), public :: pseudo_compressibility =0._R8P

Pseudo compressibility.

real(kind=R8P), public :: residuals_tolerance =0._R8P

Tolerance on residuals value.

character(len=:), public, allocatable:: time_integrator

Time integrator model: euler, rk2(3-10), ab2(3-12)…

character(len=:), public, allocatable:: turbulence_model

Turbulence_model: k-e, k-w, less…

Type-Bound Procedures

generic, public :: assignment(=) => solver_assign_solver

Overload =.

procedure, public, pass(self) :: description

Return a pretty-formatted description of solver parameters.

procedure, public, pass(self) :: destroy

Destroy solver.

procedure, public, pass(self) :: initialize

Initialize solver.

procedure, public, pass(self) :: load_from_file

Load from file.

procedure, public, pass(self) :: save_into_file

Save into file.

procedure, public, pass(lhs) :: solver_assign_solver

Operator =.


Functions

private pure function description(self, prefix) result(desc)

Return a pretty-formatted description of solver parameters.

Arguments

Type IntentOptional AttributesName
class(solver_object), intent(in) :: self

Solver object.

character(len=*), intent(in), optional :: prefix

Prefixing string.

Return Value character(len=:), allocatable

Description.


Subroutines

private elemental subroutine destroy(self)

Destroy solver.

Arguments

Type IntentOptional AttributesName
class(solver_object), intent(inout) :: self

Solver object.

private elemental subroutine initialize(self)

Initialize solver.

Arguments

Type IntentOptional AttributesName
class(solver_object), intent(inout) :: self

Solver object.

private subroutine load_from_file(self, fini, go_on_fail)

Load from file.

Arguments

Type IntentOptional AttributesName
class(solver_object), intent(inout) :: self

Solver object.

type(file_ini), intent(in) :: fini

Simulation parameters ini file handler.

logical, intent(in), optional :: go_on_fail

Go on if load fails.

private subroutine save_into_file(self, fini)

Save into file.

Arguments

Type IntentOptional AttributesName
class(solver_object), intent(inout) :: self

Solver object.

type(file_ini), intent(inout) :: fini

Simulation parameters ini file handler.

private pure subroutine solver_assign_solver(lhs, rhs)

Operator =.

Arguments

Type IntentOptional AttributesName
class(solver_object), intent(inout) :: lhs

Left hand side.

type(solver_object), intent(in) :: rhs

Right hand side.