irradiation_cell_contract_type Derived Type

type, public :: irradiation_cell_contract_type


Inherited by

type~~irradiation_cell_contract_type~~InheritedByGraph type~irradiation_cell_contract_type irradiation_cell_contract_type type~zhao_outflow_refresh_type zhao_outflow_refresh_type type~zhao_outflow_refresh_type->type~irradiation_cell_contract_type cell

Components

Type Visibility Attributes Name Initial
integer(kind=i32), public :: wall_face = 6_i32
integer(kind=i32), public :: wall_axis = 3_i32
integer(kind=i32), public :: outward_normal_sign = 1_i32
real(kind=dp), public :: wall_position = 0.0_dp
logical, public :: periodic_axes(3) = .false.
character(len=32), public :: lower_boundary_model = 'not_applicable'

Type-Bound Procedures

procedure, public :: wall_face_bit

  • private pure function wall_face_bit(self) result(bit)

    Arguments

    Type IntentOptional Attributes Name
    class(irradiation_cell_contract_type), intent(in) :: self

    Return Value integer(kind=i32)

procedure, public :: outward_normal_velocity

  • private pure function outward_normal_velocity(self, velocity) result(normal_velocity)

    Arguments

    Type IntentOptional Attributes Name
    class(irradiation_cell_contract_type), intent(in) :: self
    real(kind=dp), intent(in) :: velocity(3)

    Return Value real(kind=dp)

procedure, public :: crosses_wall_outward

  • private pure function crosses_wall_outward(self, face_mask, face_bc, velocity) result(crosses)

    Arguments

    Type IntentOptional Attributes Name
    class(irradiation_cell_contract_type), intent(in) :: self
    integer(kind=i32), intent(in) :: face_mask
    integer(kind=i32), intent(in) :: face_bc(6)
    real(kind=dp), intent(in) :: velocity(3)

    Return Value logical

procedure, public :: wall_coordinate

  • private pure function wall_coordinate(self) result(coordinate)

    Arguments

    Type IntentOptional Attributes Name
    class(irradiation_cell_contract_type), intent(in) :: self

    Return Value real(kind=dp)

procedure, public :: wall_face_name

  • private pure function wall_face_name(self) result(name)

    Arguments

    Type IntentOptional Attributes Name
    class(irradiation_cell_contract_type), intent(in) :: self

    Return Value character(len=6)

procedure, public :: wall_area

  • private pure function wall_area(self, box_min, box_max) result(area)

    Arguments

    Type IntentOptional Attributes Name
    class(irradiation_cell_contract_type), intent(in) :: self
    real(kind=dp), intent(in) :: box_min(3)
    real(kind=dp), intent(in) :: box_max(3)

    Return Value real(kind=dp)

procedure, public :: wall_tangents_periodic

  • private pure function wall_tangents_periodic(self) result(periodic)

    Arguments

    Type IntentOptional Attributes Name
    class(irradiation_cell_contract_type), intent(in) :: self

    Return Value logical

Source Code

  type, public :: irradiation_cell_contract_type
    ! bem_boundary の面順: x_low, x_high, y_low, y_high, z_low, z_high。
    integer(i32) :: wall_face = 6_i32
    integer(i32) :: wall_axis = 3_i32
    integer(i32) :: outward_normal_sign = 1_i32
    real(dp) :: wall_position = 0.0_dp
    logical :: periodic_axes(3) = .false.
    character(len=32) :: lower_boundary_model = 'not_applicable'
  contains
    procedure :: wall_face_bit
    procedure :: outward_normal_velocity
    procedure :: crosses_wall_outward
    procedure :: wall_coordinate
    procedure :: wall_face_name
    procedure :: wall_area
    procedure :: wall_tangents_periodic
  end type irradiation_cell_contract_type