Structure

Radiant.GeometryType
Geometry

Structure used to define the geometry properties of the medium for transport calculations.

Mandatory field(s)

  • name::String : name (or identifier) of the Geometry structure.
  • dimension::Int64 : dimension of the geometry.
  • material_per_region::Array{Material} : multidimensional array of the material per regions.
  • boundary_conditions::Dict{String,Int64} : boundary conditions along each axis.
  • number_of_regions::Dict{String,Int64} : number of regions along each axis.
  • voxels_per_region::Dict{String,Vector{Int64}} : number of voxels inside each regions along each axis.
  • region_boundaries::Dict{String,Vector{Float64}} : boundaries of each regions along each axis.

Optional field(s) - with default values

  • type::String="cartesian" : type of geometry.
source

Methods

Radiant.set_typeMethod
set_type(this::Geometry,type::String)

To set the type of geometry.

Input Argument(s)

  • this::Geometry : geometry.
  • type::String : type of geometry, which can takes the following value: -type = "cartesian" : Cartesian geometry.

Output Argument(s)

N/A

Examples

julia> geo = Geometry()
julia> geo.set_type("cartesian")
source
Radiant.set_dimensionMethod
set_dimension(this::Geometry,dimension::Int64)

To set the dimension of geometry.

Input Argument(s)

  • this::Geometry : geometry.
  • dimension::Int64 : dimension of the geometry, which can be either 1, 2 or 3.

Output Argument(s)

N/A

Examples

julia> geo = Geometry()
julia> geo.set_dimension(2) # For 2D geometry
source
Radiant.set_boundary_conditionsMethod
set_boundary_conditions(this::Geometry,boundary::String,boundary_condition::String)

To set the boundary conditions at the specified boundary.

Input Argument(s)

  • this::Geometry : geometry.
  • boundary::String : boundary for which the boundary condition is applied, which can takes the following value:
    • boundary = "x-" : the lower bound along x-axis
    • boundary = "x+" : the upper bound along x-axis
    • boundary = "y-" : the lower bound along y-axis
    • boundary = "y+" : the upper bound along y-axis
    • boundary = "z-" : the lower bound along z-axis
    • boundary = "z+" : the upper bound along z-axis
  • boundary_condition::String : boundary conditions, which can takes the following value: -boundary = "void" : void boundary conditions.

Output Argument(s)

N/A

Examples

julia> geo = Geometry()
julia> geo.set_boundary_conditions("x-","void")
source
Radiant.set_number_of_regionsMethod
set_number_of_regions(this::Geometry,axis::String,number_of_regions::Int64)

To set the number of regions along a specified axis.

Input Argument(s)

  • this::Geometry : geometry.
  • axis::String : axis along which the number of regions is specified, which can takes the following values:
    • boundary = "x" : along x-axis
    • boundary = "y" : along y-axis
    • boundary = "z" : along z-axis
  • number_of_regions::Int64 : number of regions.

Output Argument(s)

N/A

Examples

julia> geo = Geometry()
julia> geo.set_number_of_regions("x",3)
source
Radiant.set_voxels_per_regionMethod
set_voxels_per_region(this::Geometry,axis::String,voxels_per_region::Vector{Int64})

To set the number of voxels for each regions along a specified axis.

Input Argument(s)

  • this::Geometry : geometry.
  • axis::String : axis along which the number of regions is specified, which can takes the following values:
    • boundary = "x" : along x-axis
    • boundary = "y" : along y-axis
    • boundary = "z" : along z-axis
  • voxels_per_region::Vector{Int64} : vector with the number of voxels for each regions along the specified axis.

Output Argument(s)

N/A

Examples

julia> geo = Geometry()
julia> geo.set_number_of_regions("x",3)
julia> geo.set_voxels_per_region("x",[10,5,2])
source
Radiant.set_region_boundariesMethod
set_region_boundaries(this::Geometry,axis::String,region_boundaries::Vector{Float64})

To set the boundaries of each regions along a specified axis.

Input Argument(s)

  • this::Geometry : geometry.
  • axis::String : axis along which the number of regions is specified, which can takes the following values:
    • boundary = "x" : along x-axis
    • boundary = "y" : along y-axis
    • boundary = "z" : along z-axis
  • region_boundaries::Vector{Float64} : vector with the regions boundaries along the specified axis in ascending order.

Output Argument(s)

N/A

Examples

julia> geo = Geometry()
julia> geo.set_number_of_regions("x",3)
julia> geo.set_voxels_per_region("x",[10,5,2])
julia> geo.set_voxels_per_region("x",[0.0 0.3 0.5 1.0])
source
Radiant.set_material_per_regionMethod
set_material_per_region(this::Geometry,material_per_region::Array{Material})

To set the material in each regions of the geometry.

Input Argument(s)

  • this::Geometry : geometry.
  • material_per_region::Array{Material} : array containing the material for each regions. Its size should fit the number of regions per axis.

Output Argument(s)

N/A

Examples

# Define material
julia> mat1 = Material(); mat2 = Material()
julia> ... # Define the material properties

# 1D geometry case
julia> geo1D = Geometry()
julia> geo1D.set_type("cartesian")
julia> geo1D.set_dimension(1)
julia> geo1D.set_number_of_regions("x",3)
julia> geo1D.set_material_per_region([mat1 mat2 mat1])

# 2D geometry case
julia> geo1D = Geometry()
julia> geo1D.set_type("cartesian")
julia> geo1D.set_dimension(2)
julia> geo1D.set_number_of_regions("x",2)
julia> geo1D.set_number_of_regions("y",3)
julia> geo1D.set_material_per_region([mat1 mat2 mat1 ; mat2 mat1 mat2])
source
Radiant.buildMethod
build(this::Geometry,cs::Cross_Sections)

To build the geometry structure.

Input Argument(s)

  • this::Geometry : geometry.
  • cs::Cross_Sections : cross-sections library.

Output Argument(s)

N/A

Examples

julia> cs = Cross_Sections()
julia> ... # Defining the cross-sections library properties
julia> cs.build()
julia> geo = Geometry()
julia> ... # Defining the geometry properties
julia> geo.build(cs)
source