off_simulation_object Module

module~~off_simulation_object~~UsesGraph module~off_simulation_object off_simulation_object module~off_error_object off_error_object module~off_error_object->module~off_simulation_object module~off_solver_object off_solver_object module~off_error_object->module~off_solver_object module~off_time_object off_time_object module~off_error_object->module~off_time_object module~off_free_conditions_object off_free_conditions_object module~off_error_object->module~off_free_conditions_object module~off_os_object off_os_object module~off_error_object->module~off_os_object module~off_non_dimensional_numbers_object off_non_dimensional_numbers_object module~off_error_object->module~off_non_dimensional_numbers_object module~off_block_object off_block_object module~off_error_object->module~off_block_object module~off_file_object off_file_object module~off_error_object->module~off_file_object module~off_grid_dimensions_object off_grid_dimensions_object module~off_grid_dimensions_object->module~off_simulation_object module~off_file_grid_object off_file_grid_object module~off_grid_dimensions_object->module~off_file_grid_object module~off_solver_object->module~off_simulation_object iso_fortran_env iso_fortran_env iso_fortran_env->module~off_simulation_object iso_fortran_env->module~off_error_object iso_fortran_env->module~off_block_object iso_fortran_env->module~off_file_grid_object iso_fortran_env->module~off_file_object module~off_time_object->module~off_simulation_object module~off_free_conditions_object->module~off_simulation_object finer finer finer->module~off_simulation_object finer->module~off_solver_object finer->module~off_time_object finer->module~off_free_conditions_object finer->module~off_non_dimensional_numbers_object finer->module~off_file_object module~off_os_object->module~off_simulation_object module~off_non_dimensional_numbers_object->module~off_simulation_object flap flap flap->module~off_simulation_object module~off_block_object->module~off_simulation_object module~off_block_object->module~off_file_grid_object penf penf penf->module~off_simulation_object penf->module~off_error_object penf->module~off_grid_dimensions_object penf->module~off_solver_object penf->module~off_time_object penf->module~off_free_conditions_object penf->module~off_os_object penf->module~off_non_dimensional_numbers_object penf->module~off_block_object penf->module~off_file_grid_object module~off_block_signature_object off_block_signature_object penf->module~off_block_signature_object module~off_cell_object off_cell_object penf->module~off_cell_object module~off_face_object off_face_object penf->module~off_face_object penf->module~off_file_object module~off_file_grid_object->module~off_simulation_object vecfor vecfor vecfor->module~off_grid_dimensions_object vecfor->module~off_free_conditions_object vecfor->module~off_block_object vecfor->module~off_block_signature_object vecfor->module~off_cell_object module~off_node_object off_node_object vecfor->module~off_node_object vecfor->module~off_face_object module~off_block_signature_object->module~off_grid_dimensions_object module~off_block_signature_object->module~off_block_object stringifor stringifor stringifor->module~off_os_object module~off_cell_object->module~off_block_object module~off_node_object->module~off_block_object module~off_face_object->module~off_block_object vtk_fortran vtk_fortran vtk_fortran->module~off_block_object module~off_file_object->module~off_file_grid_object
Help

OFF simulation object definition and implementation.

Used By

module~~off_simulation_object~~UsedByGraph module~off_simulation_object off_simulation_object module~off_objects 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


Derived Types

type, public :: simulation_object

Simulation object class.

Components

TypeVisibility AttributesNameInitial
type(non_dimensional_numbers_object), public :: adimensionals

Non dimensional numbers.

type(block_object), public, allocatable:: blocks(:)

Blocks list.

type(command_line_interface), public :: cli

Command line interface.

type(error_object), public :: error

Errors handler.

type(file_grid_object), public :: file_grid

Grid file handler.

character(len=999), public :: file_parameters =''

Name of simulation parameters file.

type(free_conditions_object), public :: free_conditions

Free stream conditions.

logical, public :: go_on_fail =.false.

Allow/disallow parameters loading failure.

type(grid_dimensions_object), public :: grid_dimensions

Grid dimensions.

logical, public :: is_cli_parsed =.false.

Sentinel of CLI parsing.

logical, public :: is_output_verbose =.false.

Verbose output.

type(os_object), public :: os

Running Operating System.

type(solver_object), public :: solver

solver models parameters.

type(time_object), public :: time

Timing conditions.

Type-Bound Procedures

procedure, public, pass(self) :: allocate_blocks

Allocate blocks accordingly to grid dimensions.

procedure, public, pass(self) :: description

Return a pretty-formatted description of the simulation.

procedure, public, pass(self) :: destroy

Destroy simulation data.

procedure, public, pass(self) :: initialize

Initialize simulation.

procedure, public, pass(self) :: integrate

Integrate the equations.

procedure, public, pass(self) :: load_file_grid

Load grid file.

procedure, public, pass(self) :: load_file_parameters

Load file parameters.

procedure, public, pass(self) :: load_input_files

Load input files.

procedure, public, pass(self) :: parse_command_line_interface

Parse command line interface.

procedure, public, pass(self) :: save_file_grid

Save grid file.

procedure, public, pass(self) :: save_file_parameters

Save file parameters.

procedure, private, pass(self) :: set_command_line_interface

Set command line interface.


Functions

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

Return a pretty-formatted description of the simulation.

Arguments

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

Simulation parameters.

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

Prefixing string.

Return Value character(len=:), allocatable

Description.


Subroutines

private subroutine allocate_blocks(self)

Allocate blocks accordingly to grid dimensions.

Arguments

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

Simulation data.

private elemental subroutine destroy(self)

Destroy simulation data.

Arguments

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

Simulation data.

private subroutine initialize(self, blocks, parse_cli, load_files)

Initialize simulation.

Arguments

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

simulation data.

type(block_object), intent(in), optional :: blocks(1:)

Blocks structure.

logical, intent(in), optional :: parse_cli

Enable CLI parsing.

logical, intent(in), optional :: load_files

Enable files loading.

private subroutine integrate(self)

Integrate the equations.

Arguments

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

simulation data.

private subroutine load_file_grid(self, file_basename)

Load grid file.

Arguments

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

simulation data.

character(len=*), intent(in) :: file_basename

File basename.

private subroutine load_file_parameters(self, file_name, go_on_fail)

Load file parameters.

Arguments

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

Simulation object.

character(len=*), intent(in) :: file_name

File name.

logical, intent(in), optional :: go_on_fail

Go on if load fails.

private subroutine load_input_files(self)

Load from file.

Arguments

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

simulation data.

private subroutine parse_command_line_interface(self)

Parse command line interface.

Arguments

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

simulation data.

private subroutine save_file_grid(self, file_basename, ascii, metrics, off, tecplot, vtk)

Save grid file.

Arguments

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

simulation data.

character(len=*), intent(in) :: file_basename

File basename.

logical, intent(in), optional :: ascii

Ascii/binary output.

logical, intent(in), optional :: metrics

Save also metrics data.

logical, intent(in), optional :: off

Save in OFF format sentinel.

logical, intent(in), optional :: tecplot

Tecplot output format sentinel.

logical, intent(in), optional :: vtk

VTK output format sentinel.

private subroutine save_file_parameters(self, file_name)

Save file parameters.

Arguments

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

Simulation object.

character(len=*), intent(in) :: file_name

File name.

private subroutine set_command_line_interface(self)

Set command line interface.

Arguments

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

simulation data.