# Sharp_Ray_Trace

Syntax

  Bc Diffuse For Energy ([{of} SpeciesName] | [{in} MaterialPhaseName] | [{ls} {a | b | c}]) {@ | at | for | on | over} Mesh Extent Name ([Touching TouchingMeshExtent] | [Opposing OpposingMeshExtent]) = Sharp_Ray_Trace [Using Data Specification Data Spec Name] ([Power_Output = power_output] | [Flux_Output = flux_output] | [Toggle = toggle] | Path_Function = path_function | Dir = dir | Power = power | Type = type | [N_Rays = n_rays] | [N_R = n_r] | [N_Theta_Initial = n_theta_initial] | [N_Intersections = n_intersections] | [Weight_Ratio = weight_ratio] | [Id = id] | [Absorption_Model = absorption_model] | [Parallel_Type = parallel_type] | R = r)

Summary

  Ray tracing implementation of a sharp circular beam energy flux

Description

  r - Laser spot radius.

  type - Either radial discretization or Monte Carlo. Determines how beam will be discretized into rays. Radial discretization is deterministic and breaks beams into approximately equal area segments radially. Each segment generates one ray. The power of each ray varies based on which segment it is generated from. Monte Carlo is stochastic and will generate a user-specified number of rays distributed spatially according to the laser’s shape function, with each ray having equal power of power/n_rays.

  n_r - Number of segments in radial direction for radial discretization.

  n_theta_initial - Number of segments in theta direction in the smallest radial segment. The number of theta segments will grow as radial direction increases so segments have approximately the same area. Total number of rays will be n_r*n_r*n_theta_initial.

  n_rays - Number of rays to generate for Monte Carlo discretization.

  path_function - Function giving x, y, z coordinates of laser center as function of time.

  dir - Function giving x,y,z components of direction that rays will travel initially from laser center defined by path_function.

  power - Function giving total laser power.

  n_intersections - Maximum number of times to intersect a ray with mesh elements due to reflections (default: 10).

  weight_ratio - Fraction of initial ray power below which rays will be considered spent and no longer be traced (default: 0.001).

  absorption_model - Either Specular, to use a surface emissivity value to determine fraction of energy absorbed and reflected with each ray intersection or Fresnel to use Fresnel model dependent on ray angle of incidence.

  parallel_type - Either ray_parallel, to divide rays between processors with a globally shared mesh part or scene_parallel, to divide mesh part between processors with a globally shared set of rays.

  The following options are present in most boundary conditions/sources. The meaning of each option is as follows:

  Power_Output

    If specified, the total (integrated) power of the given BC/Src is calculated and stored into the global variable name specified as the power_output argument.

  Flux_Output

    If specified, the average flux of the given BC/Src is calculated and stored into the global variable name specified as the flux_output argument.

  Toggle

    If given, specifies which toggle block controls whether this BC is active or not.

Parameter | Value | Default
--- | --- | ---
{of} | {of | species | subindex} | –
SpeciesName | string | –
{in} | {in | material_phase} | –
MaterialPhaseName | string | –
{ls} | {levelset_phase | ls} | –
Mesh Extent Name | string | –
TouchingMeshExtent | string | –
OpposingMeshExtent | string | –
Data Spec Name | string | –
power_output | “string” | –
flux_output | “string” | –
toggle | “string” | –
path_function | “string” | –
dir | “string” | –
power | “string” | –
type | “string” | –
n_rays | integer | 0
n_r | integer | 0
n_theta_initial | integer | 0
n_intersections | integer | 10
weight_ratio | real | 0.001
id | “string” | –
absorption_model | “string” | SPECULAR
parallel_type | “string” | RAY_PARALLEL
r | real | –