Time settings
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(type_bc_thermal_dirichlet), | intent(inout) | :: | self | |||
type(type_input), | intent(in) | :: | input | |||
type(type_domain), | intent(in) | :: | domain | |||
integer(kind=int32), | intent(in) | :: | id | |||
integer(kind=int32), | intent(in) | :: | i_material | |||
real(kind=real64), | intent(in) | :: | time_conv |
module subroutine initialize_type_bc_thermal_dirichlet(self, input, domain, id, i_material, time_conv) implicit none class(type_bc_thermal_dirichlet), intent(inout) :: self type(type_input), intent(in) :: input type(type_domain), intent(in) :: domain integer(int32), intent(in) :: id integer(int32), intent(in) :: i_material real(real64), intent(in) :: time_conv integer(int32) :: i integer(int32), allocatable :: tmp_indices(:) self%material_id = input%conditions%boundary_conditions(id)%id self%boundary_name = input%conditions%boundary_conditions(id)%thermal%type self%is_uniform = input%conditions%boundary_conditions(id)%thermal%is_uniform !! Time settings if (allocated(self%time_points)) deallocate (self%time_points) allocate (self%time_points, source=input%conditions%time_control%boundary_time_points) self%time_points = self%time_points * time_conv if (allocated(self%values)) deallocate (self%values) allocate (self%values, source=input%conditions%boundary_conditions(id)%thermal%values) call find_target_edges_by_group(domain, i_material, self%target_edges) self%num_target_edges = size(self%target_edges, 2) select case (input%basic%solver_settings%reordering) case ("cm", "rcm") call allocate_array(tmp_indices, 2_int32) do i = 1, self%num_target_edges call domain%reordering%to_reordered(self%target_edges(:, i), tmp_indices) self%target_edges(:, i) = tmp_indices(:) end do call deallocate_array(tmp_indices) end select end subroutine initialize_type_bc_thermal_dirichlet