Structure
Radiant.Discrete_Ordinates — Type
Discrete_OrdinatesStructure used to define the discretization method associated with the transport of a particle.
Mandatory field(s)
particle::Particle: particle for which the discretization methods is definedsolver_type::String: type of solver for the transport calculations.quadrature_type::String: type of quadrature for the angular domain.quadrature_order::Int64: order of the quadrature for the angular domain.legendre_order::Int64: maximum order of the Legendre expansion for the differential cross-sections.scheme_type::Dict{String,String}: type of schemes for the spatial or energy discretization.scheme_order::Dict{String,Int64}: order of the expansion for the discretization schemes.
Optional field(s) - with default values
angular_fokker_planck::String = "finite-difference": type of discretization for the angular Fokker-Planck operation.angular_boltzmann::String = "galerkin-d": type of discretization for the Boltzmann operation.convergence_criterion::Float64 = 1e-7: convergence criterion of in-group iterations.maximum_iteration::Int64 = 300: maximum number of in-group iterations.acceleration::Int64 = "none": acceleration method for the in-group iterations.
Methods
Radiant.set_particle — Method
set_particle(this::Discrete_Ordinates,particle::Particle)To set the particle for which the transport discretization method is for.
Input Argument(s)
this::Discrete_Ordinates: discretization method.particle::Particle: particle.
Output Argument(s)
N/A
Examples
julia> m = Discrete_Ordinates()
julia> m.set_particle(electron) Radiant.set_solver_type — Method
set_solver_type(this::Discrete_Ordinates,solver_type::String)To set the solver for the particle transport.
Input Argument(s)
this::Discrete_Ordinates: discretization method.solver_type::String: solver type, which can takes the following values:solver_type = "BTE": Boltzmann transport equationsolver_type = "BFP": Boltzmann Fokker-Planck equationsolver_type = "BCSD": Boltzmann-CSD equationsolver_type = "FP": Fokker-Planck equationsolver_type = "CSD": Continuous slowing-down only equationsolver_type = "BFP-EF": Boltzmann Fokker-Planck without elastic
Output Argument(s)
N/A
Examples
julia> m = Discrete_Ordinates()
julia> m.set_particle("BFP")Radiant.set_quadrature — Method
set_quadrature(this::Discrete_Ordinates,type::String,order::Int64,Qdims::Int64=0)To set the quadrature properties for the discretization of the angular domain.
Input Argument(s)
this::Discrete_Ordinates: discretization method.type::String: type of quadrature, which can takes the following values:type = "gauss-legendre": Gauss-Legendre quadrature (1D Cartesian geometry only).type = "gauss-lobatto": Gauss-Lobatto quadrature (1D Cartesian geometry only).type = "carlson": Carlson quadrature (2D or 3D Cartesian geometry only).type = "gauss-legendre-chebychev": product quadrature between Gauss-Legendre and Chebychev quadratures (2D or 3D Cartesian geometry only).type = "lebedev": Lebedev quadrature (2D or 3D Cartesian geometry only).
order::Int64: order of the quadrature, which is any integer greater than 2.Qdims::Int64: quadrature dimension, which can takes the following values:Qdims = 0: default value, Qdims = 1 with 1D quadrature, Qdims = 3 with quadrature over the unit sphere in 1D or in 2D geometry or in 3D geometry.Qdims = 1: 1D quadrature.Qdims = 2: quadrature over half the unit-sphere.Qdims = 3: quadrature over the unit sphere.
Output Argument(s)
N/A
Examples
julia> m = Discrete_Ordinates()
julia> m.set_quadrature("gauss-legendre",4)Radiant.set_legendre_order — Method
set_legendre_order(this::Discrete_Ordinates,legendre_order::Int64)To set the maximum order of the Legendre expansion of the differential cross-sections.
Input Argument(s)
this::Discrete_Ordinates: discretization method.legendre_order::Int64: maximum order of the Legendre expansion of the differential cross-sections.
Output Argument(s)
N/A
Examples
julia> m = Discrete_Ordinates()
julia> m.set_legendre_order(7)Radiant.set_angular_fokker_planck — Method
set_angular_fokker_planck(this::Discrete_Ordinates,angular_fokker_planck::String)To set the discretization method for the angular Fokker-Planck term.
Input Argument(s)
this::Discrete_Ordinates: discretization method.angular_fokker_planck::String: discretization method for the angular Fokker-Planck term, which can takes the following values:angular_fokker_planck = "finite-difference": finite difference discretization.angular_fokker_planck = "galerkin": galerkin moment-based discretization.angular_fokker_planck = "differential-quadrature": finite difference discretization (1D Cartesian geometry only).
Output Argument(s)
N/A
Examples
julia> m = Discrete_Ordinates()
julia> m.set_angular_fokker_planck("differential-quadrature")Radiant.set_angular_boltzmann — Method
set_angular_boltzmann(this::Discrete_Ordinates,angular_boltzmann::String)To set the angular discretization method for the Boltzmann operator.
Input Argument(s)
this::Discrete_Ordinates: discretization method.angular_boltzmann::String: angular discretization method for the Boltzmann operator, which can takes the following values:angular_boltzmann = "standard": standard discrete ordinates (SN) method.angular_boltzmann = "galerkin-m": Galerkin method by inversion of the discrete-to-moment M matrix.angular_boltzmann = "galerkin-d": Galerkin method by inversion of the moment-to-discrete D matrix.
Output Argument(s)
N/A
Examples
julia> m = Discrete_Ordinates()
julia> m.set_angular_boltzmann("standard")Radiant.set_convergence_criterion — Method
set_convergence_criterion(this::Discrete_Ordinates,convergence_criterion::Float64)To set the convergence criterion for the in-group iterations.
Input Argument(s)
this::Discrete_Ordinates: discretization method.convergence_criterion::Float64: convergence criterion.
Output Argument(s)
N/A
Examples
julia> m = Discrete_Ordinates()
julia> m.set_convergence_criterion(1e-5)Radiant.set_maximum_iteration — Method
set_maximum_iteration(this::Discrete_Ordinates,maximum_iteration::Int64)To set the maximum number of in-group iterations.
Input Argument(s)
this::Discrete_Ordinates: discretization method.maximum_iteration::Int64: maximum number of in-group iterations.
Output Argument(s)
N/A
Examples
julia> m = Discrete_Ordinates()
julia> m.set_maximum_iteration(50)Radiant.set_scheme — Method
set_scheme(this::Discrete_Ordinates,axis::String,scheme_type::String,scheme_order::Int64)To set the type of discretization scheme for derivative along the specified spatial or energy axis.
Input Argument(s)
this::Discrete_Ordinates: discretization method.axis::String: variable of the derivative for which the scheme is applied, which can takes the following values:axis = "x": spatial x axis (discretization of the streaming term)axis = "y": spatial y axis (discretization of the streaming term)axis = "z": spatial z axis (discretization of the streaming term)axis = "E": spatial E axis (discretization of the continuous slowing-down term)
scheme_type::String: type of scheme to be applied, which can takes the following values:scheme_type = "DD": diamond difference scheme (any order)scheme_type = "DG": discontinuous Galerkin scheme (any order)scheme_type = "AWD": adaptive weighted scheme (1st and 2nd order only)
scheme_order::Int64: scheme order, which takes values greater than 1.
Output Argument(s)
N/A
Examples
julia> m = Discrete_Ordinates()
julia> m.set_scheme("x","DD",1)
julia> m.set_scheme("E","DG",2)Radiant.set_acceleration — Method
set_acceleration(this::Discrete_Ordinates,acceleration::String)To set the acceleration method for the in-group iteration process.
Input Argument(s)
this::Discrete_Ordinates: discretization method.acceleration::String: acceleration method, which takes the following valuesacceleration = "none": noneacceleration = "livolant": livolant acceleration method
Output Argument(s)
N/A
Examples
julia> m = Discrete_Ordinates()
julia> m.set_acceleration("livolant")