Initialize simulation.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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. |
subroutine initialize(self, blocks, parse_cli, load_files)
!< Initialize simulation.
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.
logical :: parse_cli_ !< Enable CLI parsing, local variable.
logical :: load_files_ !< Enable files loading, local variable.
parse_cli_ = .false. ; if (present(parse_cli )) parse_cli_ = parse_cli
load_files_ = .false. ; if (present(load_files)) load_files_ = load_files
call self%destroy
call self%error%initialize
call self%adimensionals%initialize
call self%file_grid%initialize
call self%free_conditions%initialize
call self%os%initialize
call self%solver%initialize
call self%time%initialize
call self%grid_dimensions%initialize
if (parse_cli_) call self%parse_command_line_interface
if (load_files_) call self%load_input_files
if (present(blocks)) then
call self%grid_dimensions%initialize(block_signature=blocks%signature)
allocate(self%blocks(1:size(blocks, dim=1)), source=blocks)
endif
if (self%is_output_verbose) print '(A)', self%description()
endsubroutine initialize