ConeRayStudy

Ray study that spawns Rays in the direction of a cone from a given set of starting points.

Rays are generated in directions by a product angular quadrature, in which the azimuthal directions are produced by Chebyshev quadrature and the polar directions are produced by Gauss-Legendre quadrature. In the 2D case, the full 3D quadrature is produced and projected into the 2D plane.

For example use and a further description, see Flashlight Point Sources.

Input Parameters

  • directionsThe direction(s) of the cone(s) (points down the center of each cone).

    C++ Type:std::vector<libMesh::Point>

    Unit:(no unit assumed)

    Controllable:No

    Description:The direction(s) of the cone(s) (points down the center of each cone).

  • half_cone_anglesAngle of the half-cones in degrees (must be <= 90)

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Angle of the half-cones in degrees (must be <= 90)

  • ray_data_nameThe name of the Ray data that the angular quadrature weights and factors will be filled into for properly weighting the line source per Ray.

    C++ Type:std::string

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the Ray data that the angular quadrature weights and factors will be filled into for properly weighting the line source per Ray.

  • start_pointsThe point(s) of the cone(s).

    C++ Type:std::vector<libMesh::Point>

    Unit:(no unit assumed)

    Controllable:No

    Description:The point(s) of the cone(s).

Required Parameters

  • azimuthal_quad_ordersOrder of the azimuthal quadrature per quadrant for each cone. The azimuthal angle is measured in a plane perpendicular to the cone direction. This will default to 30 if not provided. Must be positive.

    C++ Type:std::vector<unsigned int>

    Unit:(no unit assumed)

    Controllable:No

    Description:Order of the azimuthal quadrature per quadrant for each cone. The azimuthal angle is measured in a plane perpendicular to the cone direction. This will default to 30 if not provided. Must be positive.

  • execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

    Default:TIMESTEP_END

    C++ Type:ExecFlagEnum

    Unit:(no unit assumed)

    Options:NONE, INITIAL, LINEAR, NONLINEAR_CONVERGENCE, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, PRE_KERNELS

    Controllable:No

    Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

  • polar_quad_ordersOrder of the polar quadrature for each cone. Polar angle is between ray and the cone direction. Must be positive. This will default to 2 for all cones if not provided.

    C++ Type:std::vector<unsigned int>

    Unit:(no unit assumed)

    Controllable:No

    Description:Order of the polar quadrature for each cone. Polar angle is between ray and the cone direction. Must be positive. This will default to 2 for all cones if not provided.

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • ray_distance1.79769e+308The maximum distance all Rays can travel

    Default:1.79769e+308

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The maximum distance all Rays can travel

  • scaling_factorsScaling factors for each cone (if any). Defaults to 1.

    C++ Type:std::vector<double>

    Unit:(no unit assumed)

    Controllable:No

    Description:Scaling factors for each cone (if any). Defaults to 1.

  • tolerate_failureFalseWhether or not to tolerate a ray tracing failure

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to tolerate a ray tracing failure

  • use_internal_sidesetsFalseWhether or not to use internal sidesets for RayBCs in ray tracing

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to use internal sidesets for RayBCs in ray tracing

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Optional Parameters

  • allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

  • allow_new_work_during_executionTrueWhether or not to allow the addition of new work to the work buffer during execution

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to allow the addition of new work to the work buffer during execution

  • buffer_growth_multiplier2How much to grow a SendBuffer by if the buffer completely fills and dumps. Will max at send_buffer_size

    Default:2

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:How much to grow a SendBuffer by if the buffer completely fills and dumps. Will max at send_buffer_size

  • buffer_shrink_multiplier0.5Multiplier (between 0 and 1) to apply to the current buffer size if it is force dumped. Will stop at min_buffer_size.

    Default:0.5

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Multiplier (between 0 and 1) to apply to the current buffer size if it is force dumped. Will stop at min_buffer_size.

  • chunk_size100The number of objects to process at one time during execution

    Default:100

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The number of objects to process at one time during execution

  • clicks_per_communication10Iterations to wait before communicating

    Default:10

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:Iterations to wait before communicating

  • clicks_per_receive1Iterations to wait before checking for new objects

    Default:1

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:Iterations to wait before checking for new objects

  • clicks_per_root_communication10Iterations to wait before communicating with root

    Default:10

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:Iterations to wait before communicating with root

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

  • execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

    Default:0

    C++ Type:int

    Unit:(no unit assumed)

    Controllable:No

    Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

  • force_postauxFalseForces the UserObject to be executed in POSTAUX

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Forces the UserObject to be executed in POSTAUX

  • force_preauxFalseForces the UserObject to be executed in PREAUX

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Forces the UserObject to be executed in PREAUX

  • force_preicFalseForces the UserObject to be executed in PREIC during initial setup

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Forces the UserObject to be executed in PREIC during initial setup

  • methodsmartThe algorithm to use

    Default:smart

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:smart, harm, bs

    Controllable:No

    Description:The algorithm to use

  • min_buffer_sizeThe initial size of the SendBuffer and the floor for shrinking it. This defaults to send_buffer_size if not set (i.e. the buffer won't change size)

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The initial size of the SendBuffer and the floor for shrinking it. This defaults to send_buffer_size if not set (i.e. the buffer won't change size)

  • send_buffer_size100The size of the send buffer

    Default:100

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The size of the send buffer

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

  • work_buffer_typecircularThe work buffer type to use

    Default:circular

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:lifo, circular

    Controllable:No

    Description:The work buffer type to use

Advanced Parameters

  • always_cache_tracesFalseWhether or not to cache the Ray traces on every execution, primarily for use in output. Warning: this can get expensive very quick with a large number of rays!

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to cache the Ray traces on every execution, primarily for use in output. Warning: this can get expensive very quick with a large number of rays!

  • aux_data_on_cache_tracesFalseWhether or not to also cache the Ray's aux data when caching its traces

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to also cache the Ray's aux data when caching its traces

  • data_on_cache_tracesFalseWhether or not to also cache the Ray's data when caching its traces

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to also cache the Ray's data when caching its traces

  • segments_on_cache_tracesTrueWhether or not to cache individual segments when trace caching is enabled. If false, we will instead cache a segment for each part of the trace where the direction is the same. This minimizes the number of segments requied to represent the Ray's path, but removes the ability to show Ray field data on each segment through an element.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to cache individual segments when trace caching is enabled. If false, we will instead cache a segment for each part of the trace where the direction is the same. This minimizes the number of segments requied to represent the Ray's path, but removes the ability to show Ray field data on each segment through an element.

Trace Cache Parameters

  • ray_kernel_coverage_checkTrueWhether or not to perform coverage checks on RayKernels

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to perform coverage checks on RayKernels

  • verify_raysTrueWhether or not to verify the generated Rays. This includes checking their starting information and the uniqueness of Rays before and after execution. This is also used by derived studies for more specific verification.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to verify the generated Rays. This includes checking their starting information and the uniqueness of Rays before and after execution. This is also used by derived studies for more specific verification.

  • verify_trace_intersectionsTrueWhether or not to verify the trace intersections in devel and dbg modes. Trace intersections are not verified regardless of this parameter in optimized modes (opt, oprof).

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to verify the trace intersections in devel and dbg modes. Trace intersections are not verified regardless of this parameter in optimized modes (opt, oprof).

Checks And Verifications Parameters

  • warn_non_planarTrueWhether or not to produce a warning if any element faces are non-planar.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to produce a warning if any element faces are non-planar.

  • warn_subdomain_hmaxTrueWhether or not to warn if the approximated hmax (constant on subdomain) varies significantly for an element

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether or not to warn if the approximated hmax (constant on subdomain) varies significantly for an element

Tracing Warnings Parameters