- boundaryThe list of boundary IDs from the mesh where this object applies
C++ Type:std::vector<BoundaryName>
Unit:(no unit assumed)
Controllable:No
Description:The list of boundary IDs from the mesh where this object applies
KillRayBC
A RayBC that kills a Ray on a boundary.
The ray is killed by setting the Ray to not be continued:
void
KillRayBC::onBoundary(const unsigned int /* num_applying */)
{
// After RayBCs are completed, ray->shouldContinue() is checked and this will kill the Ray
currentRay()->setShouldContinue(false);
}
(modules/ray_tracing/src/raybcs/KillRayBC.C)Input Parameters
- depends_onOther RayBCs that this RayBC depends on
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Other RayBCs that this RayBC depends on
- raysThe name of the Rays associated with this object; only used if Ray registration is enabled within the study. If no Rays are supplied, this object will be applied to all Rays.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:The name of the Rays associated with this object; only used if Ray registration is enabled within the study. If no Rays are supplied, this object will be applied to all Rays.
- studyThe RayTracingStudy associated with this object. If none provided, this will default to the one study that exists.
C++ Type:UserObjectName
Unit:(no unit assumed)
Controllable:No
Description:The RayTracingStudy associated with this object. If none provided, this will default to the one study that exists.
Optional Parameters
- 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:No
Description:Set the enabled status of the MooseObject.
Advanced Parameters
Input Files
- (modules/ray_tracing/test/tests/userobjects/ray_tracing_study/lots.i)
- (modules/ray_tracing/test/tests/postprocessors/ray_tracing_study_result/ray_tracing_study_result.i)
- (modules/ray_tracing/test/tests/traceray/internal_sidesets/internal_sidesets_2d.i)
- (modules/ray_tracing/test/tests/userobjects/ray_tracing_study/bc_create_ray/bc_create_ray.i)
- (modules/ray_tracing/test/tests/traceray/internal_sidesets/internal_sidesets_1d.i)
- (modules/ray_tracing/test/tests/traceray/internal_sidesets/internal_sidesets_3d.i)
- (modules/ray_tracing/test/tests/raybcs/reflect_ray_bc/reflect_ray_bc.i)
- (modules/ray_tracing/test/tests/raybcs/reflect_ray_bc/reflect_ray_bc_nonplanar.i)
- (modules/ray_tracing/test/tests/userobjects/ray_tracing_study/kernel_change_ray/kernel_change_ray.i)
- (modules/ray_tracing/test/tests/userobjects/ray_tracing_study/ray_data/ray_data.i)
- (modules/ray_tracing/test/tests/traceray/adaptivity/adaptivity_3d.i)
- (modules/ray_tracing/test/tests/userobjects/ray_tracing_study/kernel_create_ray/kernel_create_ray.i)
- (modules/ray_tracing/test/tests/raykernels/dependencies/ray_kernel_dependencies.i)
- (modules/ray_tracing/test/tests/traceray/nonplanar/nonplanar.i)
- (modules/ray_tracing/test/tests/raybcs/errors/raybc_errors.i)
- (modules/ray_tracing/test/tests/postprocessors/ray_integral_value/ray_integral_value_errors.i)
- (modules/ray_tracing/test/tests/postprocessors/ray_data_value/ray_data_value_errors.i)
- (modules/ray_tracing/test/tests/raybcs/dependencies/ray_bc_dependencies.i)
- (modules/ray_tracing/test/tests/vector_postprocessors/per_processor_ray_tracing_results_vector_postprocessor/per_processor_ray_tracing_results_vector_postprocessor.i)
- (modules/ray_tracing/test/tests/traceray/adaptivity/adaptivity_1d.i)
- (modules/ray_tracing/test/tests/userobjects/ray_tracing_study/reuse_rays/reuse_rays.i)
- (modules/ray_tracing/test/tests/traceray/adaptivity/adaptivity_2d.i)
- (modules/ray_tracing/test/tests/userobjects/repeatable_ray_study/max_distance.i)
- (modules/ray_tracing/test/tests/userobjects/cone_ray_study/cone_ray_study.i)
- (modules/ray_tracing/test/tests/raytracing/ray/ray_lots.i)
- (modules/ray_tracing/test/tests/userobjects/cone_ray_study/cone_ray_study_3d.i)
- (modules/ray_tracing/test/tests/userobjects/repeatable_ray_study_base/recover.i)
- (modules/ray_tracing/test/tests/userobjects/ray_tracing_study/tolerate_failure/tolerate_failure.i)
- (modules/ray_tracing/test/tests/traceray/lots.i)
- (modules/ray_tracing/test/tests/traceray/backface_culling/backface_culling.i)
(modules/ray_tracing/src/raybcs/KillRayBC.C)
// This file is part of the MOOSE framework
// https://www.mooseframework.org
//
// All rights reserved, see COPYRIGHT for full restrictions
// https://github.com/idaholab/moose/blob/master/COPYRIGHT
//
// Licensed under LGPL 2.1, please see LICENSE for details
// https://www.gnu.org/licenses/lgpl-2.1.html
#include "KillRayBC.h"
registerMooseObject("RayTracingApp", KillRayBC);
InputParameters
KillRayBC::validParams()
{
auto params = GeneralRayBC::validParams();
params.addClassDescription("A RayBC that kills a Ray on a boundary.");
return params;
}
KillRayBC::KillRayBC(const InputParameters & params) : GeneralRayBC(params) {}
void
KillRayBC::onBoundary(const unsigned int /* num_applying */)
{
// After RayBCs are completed, ray->shouldContinue() is checked and this will kill the Ray
currentRay()->setShouldContinue(false);
}
(modules/ray_tracing/test/tests/userobjects/ray_tracing_study/lots.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 4
ny = 4
[]
[]
[UserObjects/lots]
type = LotsOfRaysRayStudy
ray_kernel_coverage_check = false # no need for RayKernels
execute_on = initial
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'top left right bottom'
[]
[Postprocessors/total_distance]
type = RayTracingStudyResult
study = lots
result = total_distance
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
csv = true
exodus = false
[]
(modules/ray_tracing/test/tests/postprocessors/ray_tracing_study_result/ray_tracing_study_result.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
nx = 10
[]
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'left right'
[]
[UserObjects/study]
type = LotsOfRaysRayStudy
ray_kernel_coverage_check = false
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[total_rays_started]
type = RayTracingStudyResult
study = study
result = total_rays_started
[]
[total_processor_crossings]
type = RayTracingStudyResult
study = study
result = total_processor_crossings
[]
[max_processor_crossings]
type = RayTracingStudyResult
study = study
result = max_processor_crossings
[]
[total_distance]
type = RayTracingStudyResult
study = study
result = total_distance
[]
[]
[Outputs]
csv = true
[]
(modules/ray_tracing/test/tests/traceray/internal_sidesets/internal_sidesets_2d.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dim = 2
dx = '2 2 2'
dy = '2 2 2'
ix = '2 2 2'
iy = '2 2 2'
subdomain_id = '0 1 0
2 5 3
0 4 0'
[]
[interior_bottom]
type = SideSetsBetweenSubdomainsGenerator
input = cmg
primary_block = 5
paired_block = 1
new_boundary = 'interior_bottom'
[]
[interior_left]
type = SideSetsBetweenSubdomainsGenerator
input = interior_bottom
primary_block = 5
paired_block = 2
new_boundary = 'interior_left'
[]
[interior_right]
type = SideSetsBetweenSubdomainsGenerator
input = interior_left
primary_block = 5
paired_block = 3
new_boundary = 'interior_right'
[]
[interior_top]
type = SideSetsBetweenSubdomainsGenerator
input = interior_right
primary_block = 5
paired_block = 4
new_boundary = 'interior_top'
[]
[]
[RayBCs]
active = 'kill_internal'
# active = 'kill_external reflect_internal'
# for testing internal kill
[kill_internal]
type = KillRayBC
boundary = 'interior_top interior_right interior_bottom interior_left'
[]
# for testing internal reflect
[kill_external]
type = KillRayBC
boundary = 'top right bottom left'
[]
[reflect_internal]
type = ReflectRayBC
boundary = 'interior_top interior_right interior_bottom interior_left'
[]
[]
[UserObjects/study]
type = RepeatableRayStudy
start_points = '0 0 0
2 4 0
6 6 0
0 2.5 0
3 6 0
2.5 2.5 0'
directions = '1 1 0
1 -1 0
-1 -1 0
1 0.1 0
0 -1 0
0.5 1.5 0'
names = 'to_bottom_left_corner
at_top_left_corner
to_top_right_corner
to_left_offset
to_top_center_node
inside_to_top'
ray_distance = 10
execute_on = initial
ray_kernel_coverage_check = false
use_internal_sidesets = true
[]
[Postprocessors/total_distance]
type = RayTracingStudyResult
study = study
result = total_distance
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/userobjects/ray_tracing_study/bc_create_ray/bc_create_ray.i)
[Mesh]
active = gmg_2d
[gmg_2d]
type = GeneratedMeshGenerator
dim = 2
nx = 3
ny = 3
xmax = 3
ymax = 3
[]
[gmg_3d]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmax = 3
ymax = 3
zmax = 3
[]
[]
[RayBCs]
active = 'kill_2d create_2d'
[kill_2d]
type = KillRayBC
boundary = 'top right bottom left'
[]
[create_2d]
type = CreateRayRayBCTest
boundary = 'top right bottom left'
[]
[kill_3d]
type = KillRayBC
boundary = 'top right bottom left front back'
[]
[create_3d]
type = CreateRayRayBCTest
boundary = 'top right bottom left front back'
[]
[]
[UserObjects/lots]
type = LotsOfRaysRayStudy
execute_on = initial
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
ray_kernel_coverage_check = false
[]
[Postprocessors]
[total_distance]
type = RayTracingStudyResult
study = lots
result = total_distance
[]
[total_rays_started]
type = RayTracingStudyResult
study = lots
result = total_rays_started
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/traceray/internal_sidesets/internal_sidesets_1d.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
xmax = 6
nx = 6
[]
[central_block]
type = SubdomainBoundingBoxGenerator
input = gmg
block_id = 1
bottom_left = '2 0 0'
top_right = '4 0 0'
[]
[central_boundary]
type = SideSetsBetweenSubdomainsGenerator
input = central_block
primary_block = 1
paired_block = 0
new_boundary = 7
[]
[]
[RayBCs]
active = 'kill_internal'
# active = 'kill_external reflect_internal'
# for testing internal kill
[kill_internal]
type = KillRayBC
boundary = 7
[]
# for testing internal reflect
[kill_external]
type = KillRayBC
boundary = 'left right'
[]
[reflect_internal]
type = ReflectRayBC
boundary = 7
[]
[]
[UserObjects/study]
type = RepeatableRayStudy
start_points = '0 0 0
2 0 0
6 0 0
4 0 0
3 0 0'
directions = '1 0 0
1 0 0
-1 0 0
-1 0 0
-1 0 0'
names = 'left_in at_left right_in at_right inside_left'
ray_distance = 10
execute_on = initial
ray_kernel_coverage_check = false
use_internal_sidesets = true
[]
[Postprocessors/total_distance]
type = RayTracingStudyResult
study = study
result = total_distance
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/traceray/internal_sidesets/internal_sidesets_3d.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dim = 3
dx = '2 2 2'
dy = '2 2 2'
dz = '2 2 2'
ix = '2 2 2'
iy = '2 2 2'
iz = '2 2 2'
subdomain_id = '0 0 0
0 1 0
0 0 0
0 2 0
3 7 4
0 5 0
0 0 0
0 6 0
0 0 0'
[]
[interior_back]
type = SideSetsBetweenSubdomainsGenerator
input = cmg
primary_block = 7
paired_block = 1
new_boundary = 'interior_back'
[]
[interior_bottom]
type = SideSetsBetweenSubdomainsGenerator
input = interior_back
primary_block = 7
paired_block = 2
new_boundary = 'interior_bottom'
[]
[interior_left]
type = SideSetsBetweenSubdomainsGenerator
input = interior_bottom
primary_block = 7
paired_block = 3
new_boundary = 'interior_left'
[]
[interior_right]
type = SideSetsBetweenSubdomainsGenerator
input = interior_left
primary_block = 7
paired_block = 4
new_boundary = 'interior_right'
[]
[interior_top]
type = SideSetsBetweenSubdomainsGenerator
input = interior_right
primary_block = 7
paired_block = 5
new_boundary = 'interior_top'
[]
[interior_front]
type = SideSetsBetweenSubdomainsGenerator
input = interior_top
primary_block = 7
paired_block = 6
new_boundary = 'interior_front'
[]
[]
[RayBCs]
active = 'kill_internal'
# active = 'kill_external reflect_internal'
# for testing internal kill
[kill_internal]
type = KillRayBC
boundary = 'interior_top interior_right interior_bottom interior_left interior_front interior_back'
[]
# for testing internal reflect
[kill_external]
type = KillRayBC
boundary = 'top right bottom left front back'
[]
[reflect_internal]
type = ReflectRayBC
boundary = 'interior_top interior_right interior_bottom interior_left interior_front interior_back'
[]
[]
[UserObjects/study]
type = RepeatableRayStudy
start_points = '0 0 0
2 2 2
6 6 6
4 4 4
0 2.5 2.5
3 3 6
2.5 0 0
3 3 3
2.5 2.5 2.5'
directions = '1 1 1
1 1 1
-1 -1 -1
-1 -1 -1
1 0.1 0
0 0 -1
0 1 1
1 1 1
0.5 1.5 1.5'
names = 'to_bottom_left_corner
at_bottom_left_corner
to_top_right_corner
at_top_right_corner
centroid_offset
top_down
left_to_edge
inside_to_corner
inside_offset'
execute_on = initial
ray_distance = 10
ray_kernel_coverage_check = false
use_internal_sidesets = true
[]
[Postprocessors/total_distance]
type = RayTracingStudyResult
study = study
result = total_distance
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/raybcs/reflect_ray_bc/reflect_ray_bc.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
xmax = 5
ymax = 5
[]
[]
[RayBCs]
[kill]
type = KillRayBC
boundary = 'top'
[]
[reflect]
type = ReflectRayBC
boundary = 'top right left bottom'
[]
[]
[UserObjects/lots]
type = LotsOfRaysRayStudy
ray_kernel_coverage_check = false
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = false
execute_on = initial
ray_distance = 10
[]
[Postprocessors/total_distance]
type = RayTracingStudyResult
study = lots
result = total_distance
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/raybcs/reflect_ray_bc/reflect_ray_bc_nonplanar.i)
[Mesh]
[file]
type = FileMeshGenerator
file = nonplanar.e
[]
[subdomains]
type = ParsedSubdomainMeshGenerator
input = file
combinatorial_geometry = 'x > 0.5'
block_id = 1
[]
[internal_sideset]
type = SideSetsBetweenSubdomainsGenerator
input = subdomains
primary_block = 0
paired_block = 1
new_boundary = internal
[]
[]
[UserObjects/study]
type = RepeatableRayStudy
start_points = '0 0 0'
directions = '1 1 1'
names = 'ray'
warn_non_planar = false
use_internal_sidesets = true
execute_on = initial
tolerate_failure = true
[]
[RayBCs]
[kill]
type = KillRayBC
boundary = 'top right bottom left front back'
[]
[reflect_internal]
type = ReflectRayBC
boundary = internal
[]
[]
[RayKernels/null]
type = NullRayKernel
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
(modules/ray_tracing/test/tests/userobjects/ray_tracing_study/kernel_change_ray/kernel_change_ray.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
xmax = 5
ymax = 5
[]
[]
[Variables/phase]
[InitialCondition]
type = FunctionIC
variable = field
function = '(x > 2.99) * 1.0'
[]
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'top right bottom left'
[]
[RayKernels/test]
type = RefractionRayKernelTest
field = phase
[]
[UserObjects/lots]
type = LotsOfRaysRayStudy
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = false
execute_on = initial
[]
[Postprocessors/total_distance]
type = RayTracingStudyResult
study = lots
result = total_distance
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/userobjects/ray_tracing_study/ray_data/ray_data.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
xmax = 5
ymax = 5
[]
[]
[RayBCs]
[kill1]
type = KillRayBC
boundary = 'top right bottom left'
study = test1
[]
[kill2]
type = KillRayBC
boundary = 'top right bottom left'
study = test2
[]
[kill3]
type = KillRayBC
boundary = 'top right bottom left'
study = test3
[]
[kill4]
type = KillRayBC
boundary = 'top right bottom left'
study = test4
[]
[]
[RayKernels]
[data1]
type = TestRayDataRayKernel
study = test1
[]
[data2]
type = TestRayDataRayKernel
study = test2
[]
[data3]
type = TestRayDataRayKernel
study = test3
[]
[data4]
type = TestRayDataRayKernel
study = test4
[]
[]
[UserObjects]
[test1]
type = TestRayDataStudy
execute_on = timestep_end
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
data_size = 1
aux_data_size = 2
[]
[test2]
type = TestRayDataStudy
execute_on = timestep_end
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
data_size = 2
aux_data_size = 3
[]
[test3]
type = TestRayDataStudy
execute_on = timestep_end
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
data_size = 3
aux_data_size = 4
[]
[test4]
type = TestRayDataStudy
execute_on = timestep_end
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
data_size = 4
aux_data_size = 6
[]
[]
[Executioner]
type = Transient
num_steps = 2
[]
[Problem]
solve = false
[]
[Adaptivity]
steps = 1
marker = marker
[Markers/marker]
type = BoxMarker
bottom_left = '3 0 0'
top_right = '5 5 0'
inside = REFINE
outside = DO_NOTHING
[]
[]
[Postprocessors]
[ray_distance1]
type = RayTracingStudyResult
result = total_distance
study = test1
[]
[ray_distance2]
type = RayTracingStudyResult
result = total_distance
study = test2
[]
[ray_distance3]
type = RayTracingStudyResult
result = total_distance
study = test3
[]
[ray_distance4]
type = RayTracingStudyResult
result = total_distance
study = test4
[]
[]
[Outputs]
csv = true
[]
(modules/ray_tracing/test/tests/traceray/adaptivity/adaptivity_3d.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = 2
ny = 2
nz = 2
[]
[]
[Variables/u]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Executioner]
type = Transient
num_steps = 3
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Adaptivity]
steps = 1
marker = marker
initial_marker = marker
max_h_level = 2
[Indicators/indicator]
type = GradientJumpIndicator
variable = u
[]
[Markers/marker]
type = ErrorFractionMarker
indicator = indicator
coarsen = 0.1
refine = 0.1
[]
[]
[UserObjects/study]
type = LotsOfRaysRayStudy
ray_kernel_coverage_check = false
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
execute_on = timestep_end
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'top right bottom left front back'
[]
[Postprocessors]
[total_distance]
type = RayTracingStudyResult
study = study
result = total_distance
execute_on = timestep_end
[]
[total_rays]
type = RayTracingStudyResult
study = study
result = total_rays_started
execute_on = timestep_end
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/userobjects/ray_tracing_study/kernel_create_ray/kernel_create_ray.i)
[Mesh]
active = gmg_2d
[gmg_2d]
type = GeneratedMeshGenerator
dim = 2
nx = 3
ny = 3
xmax = 3
ymax = 3
[]
[gmg_3d]
type = GeneratedMeshGenerator
dim = 3
nx = 3
ny = 3
nz = 3
xmax = 3
ymax = 3
zmax = 3
[]
[]
[RayBCs]
active = kill_2d
[kill_2d]
type = KillRayBC
boundary = 'top right bottom left'
[]
[kill_3d]
type = KillRayBC
boundary = 'top right bottom left front back'
[]
[]
[RayKernels/create_ray]
type = CreateRayRayKernelTest
[]
[UserObjects/lots]
type = LotsOfRaysRayStudy
execute_on = initial
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
[]
[Postprocessors]
[total_distance]
type = RayTracingStudyResult
study = lots
result = total_distance
[]
[total_rays_started]
type = RayTracingStudyResult
study = lots
result = total_rays_started
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/raykernels/dependencies/ray_kernel_dependencies.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[UserObjects/study]
type = RepeatableRayStudy
start_points = '0 0 0'
directions = '1 0 0'
names = ray
ray_data_names = data
initial_ray_data = 1
[]
[RayBCs/kill]
type = KillRayBC
boundary = right
[]
[RayKernels]
[add_1]
type = ChangeRayRayKernelTest
data_name = data
add_value = 1
depends_on = add_10
[]
[scale_5]
type = ChangeRayRayKernelTest
data_name = data
scale_value = 5
depends_on = scale_9
[]
[add_10]
type = ChangeRayRayKernelTest
data_name = data
add_value = 10
[]
[scale_9]
type = ChangeRayRayKernelTest
data_name = data
scale_value = 9
depends_on = add_1
[]
[]
[Postprocessors/value]
type = RayDataValue
study = study
ray_name = ray
data_name = data
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(modules/ray_tracing/test/tests/traceray/nonplanar/nonplanar.i)
[Mesh]
[file]
type = FileMeshGenerator
file = nonplanar.e
[]
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'top right bottom left front back'
[]
[RayKernels/null]
type = NullRayKernel
[]
[UserObjects/lots]
type = LotsOfRaysRayStudy
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
side_aq = true
centroid_aq = true
compute_expected_distance = true
warn_non_planar = false
execute_on = initial
[]
[Postprocessors]
[total_distance]
type = RayTracingStudyResult
study = lots
result = total_distance
[]
[expected_distance]
type = LotsOfRaysExpectedDistance
lots_of_rays_study = lots
[]
[distance_difference]
type = DifferencePostprocessor
value1 = total_distance
value2 = expected_distance
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/raybcs/errors/raybc_errors.i)
[Mesh]
active = 'gmg'
[gmg]
type = CartesianMeshGenerator
dim = 1
dx = '0.5 0.5'
ix = '1 1'
subdomain_id = '0 1'
[]
[internal]
type = SideSetsBetweenSubdomainsGenerator
input = gmg
primary_block = 1
paired_block = 0
new_boundary = internal
[]
[]
[UserObjects]
active = 'study'
[study]
type = RepeatableRayStudy
start_points = '0 0 0'
directions = '1 0 0'
names = 'ray'
execute_on = INITIAL
ray_kernel_coverage_check = false
[]
[set_end_study]
type = RepeatableRayStudy
start_points = '0 0 0'
end_points = '1 0 0'
names = 'ray'
execute_on = INITIAL
ray_kernel_coverage_check = false
use_internal_sidesets = true
[]
[start_internal_study]
type = RepeatableRayStudy
start_points = '0.5 0 0'
directions = '1 0 0'
names = 'ray'
execute_on = INITIAL
ray_kernel_coverage_check = false
use_internal_sidesets = true
[]
[]
[RayBCs]
active = ''
[kill]
type = KillRayBC
boundary = right
[]
[change]
type = ChangeRayRayBCTest
boundary = right
change_direction = true
[]
[change_again]
type = ChangeRayRayBCTest
boundary = right
change_direction = true
[]
[change_internal]
type = ChangeRayRayBCTest
boundary = internal
change_direction = true
[]
[change_zero]
type = ChangeRayRayBCTest
boundary = right
change_direction_zero = true
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
(modules/ray_tracing/test/tests/postprocessors/ray_integral_value/ray_integral_value_errors.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[AuxVariables/u]
[]
[UserObjects]
active = 'repeatable'
[repeatable]
type = RepeatableRayStudy
start_points = '0 0 0'
directions = '1 0 0'
names = ray
[]
[lots]
type = LotsOfRaysRayStudy
ray_kernel_coverage_check = false
[]
[no_banking_study]
type = DisableRayBankingStudy
start_points = '0 0 0'
directions = '1 0 0'
names = ray
[]
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'left right'
[]
[RayKernels]
active = ''
[null]
type = NullRayKernel
[]
[variable_integral]
type = VariableIntegralRayKernel
variable = u
[]
[]
[Postprocessors]
active = ''
[not_integral_ray_kernel]
type = RayIntegralValue
ray_kernel = null
ray = ray
[]
[kernel_not_found]
type = RayIntegralValue
ray_kernel = dummy
ray = ray
[]
[ray_not_found]
type = RayIntegralValue
ray_kernel = variable_integral
ray = dummy
[]
[no_registration]
type = RayIntegralValue
ray_kernel = variable_integral
ray = dummy
[]
[no_banking]
type = RayIntegralValue
ray_kernel = variable_integral
ray = dummy
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
(modules/ray_tracing/test/tests/postprocessors/ray_data_value/ray_data_value_errors.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[UserObjects]
active = ''
[lots]
type = LotsOfRaysRayStudy
vertex_to_vertex = false
centroid_to_centroid = false
centroid_to_vertex = false
ray_kernel_coverage_check = false
[]
[repeatable]
type = RepeatableRayStudy
start_points = '0 0 0'
directions = '1 0 0'
ray_data_names = data
names = ray
ray_kernel_coverage_check = false
[]
[no_banking_study]
type = DisableRayBankingStudy
start_points = '0 0 0'
directions = '1 0 0'
ray_data_names = data
names = ray
ray_kernel_coverage_check = false
[]
[]
[RayBCs]
active = ''
[kill]
type = KillRayBC
boundary = right
[]
[]
[Postprocessors]
active = ''
[no_registration]
type = RayDataValue
study = lots
ray_name = dummy
data_name = dummy
[]
[no_banking]
type = RayDataValue
study = no_banking_study
ray_name = ray
data_name = data
[]
[ray_name_not_found]
type = RayDataValue
study = repeatable
ray_name = dummy
data_name = data
execute_on = initial
[]
[data_name_not_found]
type = RayDataValue
study = repeatable
ray_name = ray
data_name = dummy
execute_on = initial
[]
[aux_data_name_not_found]
type = RayDataValue
study = repeatable
ray_name = ray
data_name = dummy
aux = true
execute_on = initial
[]
[id_not_found]
type = RayDataValue
study = repeatable
ray_id = 1
data_name = data
execute_on = final
[]
[neither_provided]
type = RayDataValue
study = repeatable
data_name = data
execute_on = initial
[]
[both_provided]
type = RayDataValue
study = repeatable
data_name = data
ray_id = 0
ray_name = dummy
execute_on = initial
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
(modules/ray_tracing/test/tests/raybcs/dependencies/ray_bc_dependencies.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[UserObjects/study]
type = RepeatableRayStudy
start_points = '0 0 0'
directions = '1 0 0'
names = ray
ray_data_names = data
initial_ray_data = 1
ray_kernel_coverage_check = false
[]
[RayBCs]
[add_1]
type = ChangeRayRayBCTest
boundary = right
data_name = data
add_value = 1
depends_on = add_10
[]
[scale_5]
type = ChangeRayRayBCTest
data_name = data
boundary = right
scale_value = 5
depends_on = scale_9
[]
[add_10]
type = ChangeRayRayBCTest
data_name = data
boundary = right
add_value = 10
[]
[scale_9]
type = ChangeRayRayBCTest
data_name = data
boundary = right
scale_value = 9
depends_on = add_1
[]
[kill]
type = KillRayBC
boundary = right
[]
[]
[Postprocessors/value]
type = RayDataValue
study = study
ray_name = ray
data_name = data
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(modules/ray_tracing/test/tests/vector_postprocessors/per_processor_ray_tracing_results_vector_postprocessor/per_processor_ray_tracing_results_vector_postprocessor.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 2
xmax = 5
ymax = 2
[]
[]
[AuxVariables]
[rays_started]
family = MONOMIAL
order = CONSTANT
[]
[rays_traced]
family = MONOMIAL
order = CONSTANT
[]
[rays_received]
family = MONOMIAL
order = CONSTANT
[]
[rays_sent]
family = MONOMIAL
order = CONSTANT
[]
[intersections]
family = MONOMIAL
order = CONSTANT
[]
[face_hit]
family = MONOMIAL
order = CONSTANT
[]
[vertex_hit]
family = MONOMIAL
order = CONSTANT
[]
[edge_hit]
family = MONOMIAL
order = CONSTANT
[]
[moved_through_neighbors]
family = MONOMIAL
order = CONSTANT
[]
[intersection_calls]
family = MONOMIAL
order = CONSTANT
[]
[vertex_neighbor_lookups]
family = MONOMIAL
order = CONSTANT
[]
[edge_neighbor_lookups]
family = MONOMIAL
order = CONSTANT
[]
[point_neighbor_builds]
family = MONOMIAL
order = CONSTANT
[]
[]
# these results are not output because they cannot be golded against
# but we still make sure they work:
#
# generation_time propagation_time chunks_traced
# buffers_received buffers_sent ray_pool_created
# receive_ray_pool_created receive_buffer_pool_created
[AuxKernels]
[rays_started]
type = VectorPostprocessorVisualizationAux
variable = rays_started
vpp = per_proc_ray_tracing
vector_name = rays_started
execute_on = timestep_end
[]
[rays_traced]
type = VectorPostprocessorVisualizationAux
variable = rays_traced
vpp = per_proc_ray_tracing
vector_name = rays_traced
execute_on = timestep_end
[]
[rays_received]
type = VectorPostprocessorVisualizationAux
variable = rays_received
vpp = per_proc_ray_tracing
vector_name = rays_received
execute_on = timestep_end
[]
[rays_sent]
type = VectorPostprocessorVisualizationAux
variable = rays_sent
vpp = per_proc_ray_tracing
vector_name = rays_sent
execute_on = timestep_end
[]
[intersections]
type = VectorPostprocessorVisualizationAux
variable = intersections
vpp = per_proc_ray_tracing
vector_name = intersections
execute_on = timestep_end
[]
[face_hit]
type = VectorPostprocessorVisualizationAux
variable = face_hit
vpp = per_proc_ray_tracing
vector_name = face_hit
execute_on = timestep_end
[]
[vertex_hit]
type = VectorPostprocessorVisualizationAux
variable = vertex_hit
vpp = per_proc_ray_tracing
vector_name = vertex_hit
execute_on = timestep_end
[]
[edge_hit]
type = VectorPostprocessorVisualizationAux
variable = edge_hit
vpp = per_proc_ray_tracing
vector_name = edge_hit
execute_on = timestep_end
[]
[moved_through_neighbors]
type = VectorPostprocessorVisualizationAux
variable = moved_through_neighbors
vpp = per_proc_ray_tracing
vector_name = moved_through_neighbors
execute_on = timestep_end
[]
[intersection_calls]
type = VectorPostprocessorVisualizationAux
variable = intersection_calls
vpp = per_proc_ray_tracing
vector_name = intersection_calls
execute_on = timestep_end
[]
[vertex_neighbor_lookups]
type = VectorPostprocessorVisualizationAux
variable = vertex_neighbor_lookups
vpp = per_proc_ray_tracing
vector_name = vertex_neighbor_lookups
execute_on = timestep_end
[]
[edge_neighbor_lookups]
type = VectorPostprocessorVisualizationAux
variable = edge_neighbor_lookups
vpp = per_proc_ray_tracing
vector_name = edge_neighbor_lookups
execute_on = timestep_end
[]
[point_neighbor_builds]
type = VectorPostprocessorVisualizationAux
variable = point_neighbor_builds
vpp = per_proc_ray_tracing
vector_name = point_neighbor_builds
execute_on = timestep_end
[]
[]
[UserObjects/lots]
type = LotsOfRaysRayStudy
ray_kernel_coverage_check = false # no need for RayKernels
execute_on = initial
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'top left right bottom'
[]
[VectorPostprocessors/per_proc_ray_tracing]
type = PerProcessorRayTracingResultsVectorPostprocessor
execute_on = timestep_end
study = lots
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
(modules/ray_tracing/test/tests/traceray/adaptivity/adaptivity_1d.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
nx = 2
[]
[]
[Variables/u]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Executioner]
type = Transient
num_steps = 3
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Adaptivity]
steps = 1
marker = marker
initial_marker = marker
max_h_level = 2
[Indicators/indicator]
type = GradientJumpIndicator
variable = u
[]
[Markers/marker]
type = ErrorFractionMarker
indicator = indicator
coarsen = 0.1
refine = 0.1
[]
[]
[UserObjects/study]
type = LotsOfRaysRayStudy
ray_kernel_coverage_check = false
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
execute_on = timestep_end
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'left right'
[]
[Postprocessors]
[total_distance]
type = RayTracingStudyResult
study = study
result = total_distance
execute_on = timestep_end
[]
[total_rays]
type = RayTracingStudyResult
study = study
result = total_rays_started
execute_on = timestep_end
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/userobjects/ray_tracing_study/reuse_rays/reuse_rays.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
nx = 10
xmin = 0
xmax = 1
[]
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'left right'
[]
[UserObjects/study]
type = TestReuseRaysStudy
ray_kernel_coverage_check = false
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 3
[]
[Postprocessors]
[total_distance]
type = RayTracingStudyResult
study = study
result = total_distance
[]
[total_rays_started]
type = RayTracingStudyResult
study = study
result = total_rays_started
[]
[]
[Outputs]
csv = true
[]
(modules/ray_tracing/test/tests/traceray/adaptivity/adaptivity_2d.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 2
ny = 2
[]
[]
[Variables/u]
[]
[Kernels]
[diff]
type = Diffusion
variable = u
[]
[time]
type = TimeDerivative
variable = u
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = left
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = right
value = 1
[]
[]
[Executioner]
type = Transient
num_steps = 3
dt = 0.1
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Adaptivity]
steps = 1
marker = marker
initial_marker = marker
max_h_level = 2
[Indicators/indicator]
type = GradientJumpIndicator
variable = u
[]
[Markers/marker]
type = ErrorFractionMarker
indicator = indicator
coarsen = 0.1
refine = 0.1
[]
[]
[UserObjects/study]
type = LotsOfRaysRayStudy
ray_kernel_coverage_check = false
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
execute_on = timestep_end
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'top right bottom left'
[]
[Postprocessors]
[total_distance]
type = RayTracingStudyResult
study = study
result = total_distance
execute_on = timestep_end
[]
[total_rays]
type = RayTracingStudyResult
study = study
result = total_rays_started
execute_on = timestep_end
[]
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/userobjects/repeatable_ray_study/max_distance.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
xmax = 5
ymax = 5
[]
[]
# to_right_distance_kill - makes it to the right boundary at (5, 0)
# and dies due to max distance (doesn't call RayBCs)
# to_right_bc_kill - makes it to right boundary at (5, 0); is still
# 0.1 from its max distance so calls 'kill_right' RayBC which
# kills it
# to_top_corner - makes it to the top right corner at (5, 5);
# reflects with direction (-1, -1) and stops once its distance
# hits 7.0
# reflect_a_lot - reflects a bunch with the RayBC 'reflect_all'
# until it gets to a distance of 50 and dies
[UserObjects/study]
type = RepeatableRayStudy
start_points = '0 0 0
0 0 0
0 0 0
0.1 0.2 0'
directions = '1 0 0
1 0 0
1 1 0
1 0.5 0'
max_distances = '5
5.1
7.0
50'
names = 'to_right_distance_kill
to_right_bc_kill
to_top_corner
reflect_a_lot'
[]
[RayKernels/null]
type = NullRayKernel
[]
[RayBCs]
[kill_right]
type = KillRayBC
boundary = right
rays = 'to_right_bc_kill'
[]
[reflect_top_right]
type = ReflectRayBC
boundary = 'top right'
rays = 'to_top_corner'
[]
[reflect_all]
type = ReflectRayBC
boundary = 'top right bottom left'
rays = 'reflect_a_lot'
[]
[]
[Postprocessors/total_distance]
type = RayTracingStudyResult
result = 'total_distance'
study = study
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/userobjects/cone_ray_study/cone_ray_study.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 10
ny = 10
xmax = 5
ymax = 5
[]
[]
[Variables/u]
[]
[Kernels]
[reaction]
type = Reaction
variable = u
[]
[diffusion]
type = Diffusion
variable = u
[]
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[UserObjects/study]
type = ConeRayStudy
start_points = '1 1.5 0'
directions = '2 1 0'
half_cone_angles = 2.5
ray_data_name = weight
# Must be set with RayKernels that
# contribute to the residual
execute_on = PRE_KERNELS
# For outputting Rays
always_cache_traces = true
[]
[RayBCs]
[reflect]
type = ReflectRayBC
boundary = 'right'
[]
[kill_rest]
type = KillRayBC
boundary = 'top'
[]
[]
[RayKernels/line_source]
type = LineSourceRayKernel
variable = u
# Scale by the weights in the ConeRayStudy
ray_data_factor_names = weight
[]
[Outputs]
exodus = true
[rays]
type = RayTracingExodus
study = study
execute_on = FINAL
[]
[]
[Adaptivity]
steps = 0 # 6 for pretty pictures
marker = marker
initial_marker = marker
max_h_level = 6
[Indicators/indicator]
type = GradientJumpIndicator
variable = u
[]
[Markers/marker]
type = ErrorFractionMarker
indicator = indicator
coarsen = 0.25
refine = 0.5
[]
[]
(modules/ray_tracing/test/tests/raytracing/ray/ray_lots.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 4
ny = 4
[]
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'top right bottom left'
study = study
[]
[UserObjects]
[study]
type = TestRayLots
execute_on = initial
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
side_aq = true
centroid_aq = true
ray_kernel_coverage_check = false
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
(modules/ray_tracing/test/tests/userobjects/cone_ray_study/cone_ray_study_3d.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 3
nx = 5
ny = 5
nz = 2
xmax = 5
ymax = 5
zmax = 2
[]
[]
[Variables/u]
[]
[Kernels]
[reaction]
type = Reaction
variable = u
[]
[diffusion]
type = Diffusion
variable = u
[]
[]
[UserObjects/study]
type = ConeRayStudy
start_points = '2.5 2.5 0'
directions = '0 0 1'
half_cone_angles = 10
# Must be set with RayKernels that
# contribute to the residual
execute_on = PRE_KERNELS
# For outputting Rays
always_cache_traces = true
ray_data_name = weight
[]
[RayKernels/null]
type = NullRayKernel
[]
# Rays only hit the front surface
[RayBCs/kill]
type = KillRayBC
boundary = 'front'
[]
[RayKernels/line_source]
type = LineSourceRayKernel
variable = u
# Scale by the weights in the ConeRayStudy
ray_data_factor_names = weight
[]
[Executioner]
type = Steady
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
exodus = true
[rays]
type = RayTracingExodus
study = study
execute_on = FINAL
[]
[]
[Adaptivity]
steps = 0 # 6 for pretty pictures
marker = marker
initial_marker = marker
max_h_level = 6
[Indicators/indicator]
type = GradientJumpIndicator
variable = u
[]
[Markers/marker]
type = ErrorFractionMarker
indicator = indicator
coarsen = 0.25
refine = 0.5
[]
[]
(modules/ray_tracing/test/tests/userobjects/repeatable_ray_study_base/recover.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
xmax = 5
ymax = 5
[]
[]
[RayBCs/kill]
type = KillRayBC
boundary = 'top right bottom left'
[]
[UserObjects/lots]
type = TestRayDataStudy
centroid_to_centroid = true
vertex_to_vertex = true
centroid_to_vertex = true
execute_on = timestep_end
compute_expected_distance = true
data_size = 3
aux_data_size = 2
[]
[RayKernels/data]
type = TestRayDataRayKernel
[]
[Executioner]
type = Transient
num_steps = 2
[]
[Problem]
solve = false
[]
[Postprocessors]
[total_distance]
type = RayTracingStudyResult
study = lots
result = total_distance
[]
[expected_distance]
type = LotsOfRaysExpectedDistance
lots_of_rays_study = lots
[]
[distance_difference]
type = DifferencePostprocessor
value1 = total_distance
value2 = expected_distance
[]
[]
[Outputs]
csv = true
[]
(modules/ray_tracing/test/tests/userobjects/ray_tracing_study/tolerate_failure/tolerate_failure.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 1
nx = 10
[]
[]
[UserObjects/study]
type = RepeatableRayStudy
start_points = '0 0 0
0 0 0'
directions = '1 0 0
1 0 0'
names = 'ray0 ray1'
ray_kernel_coverage_check = false
tolerate_failure = true
[]
[RayBCs]
[kill]
type = KillRayBC
rays = 'ray1'
boundary = 'right'
[]
[null]
type = NullRayBC
rays = 'ray0'
boundary = 'right'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
(modules/ray_tracing/test/tests/traceray/lots.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
dim = 2
nx = 5
ny = 5
nz = 5
xmax = 5
ymax = 5
zmax = 5
[]
[]
[RayBCs]
active = 'kill_2d'
[kill_1d]
type = KillRayBC
boundary = 'left right'
[]
[kill_2d]
type = KillRayBC
boundary = 'top right bottom left'
[]
[kill_3d]
type = KillRayBC
boundary = 'top right bottom left front back'
[]
[]
# Add a dummy RayKernel to enable additional error
# checking before onSegment() is called
[RayKernels/null]
type = NullRayKernel
[]
[UserObjects/lots]
type = LotsOfRaysRayStudy
vertex_to_vertex = false
centroid_to_vertex = false
centroid_to_centroid = false
side_aq = false
centroid_aq = false
compute_expected_distance = true
execute_on = initial
[]
[Postprocessors]
[total_distance]
type = RayTracingStudyResult
study = lots
result = total_distance
[]
[expected_distance]
type = LotsOfRaysExpectedDistance
lots_of_rays_study = lots
[]
[distance_difference]
type = DifferencePostprocessor
value1 = total_distance
value2 = expected_distance
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = false
csv = true
[]
(modules/ray_tracing/test/tests/traceray/backface_culling/backface_culling.i)
[Mesh]
[gmg]
type = GeneratedMeshGenerator
nx = 5
ny = 5
nz = 5
xmax = 5
ymax = 5
zmax = 5
[]
[]
[RayBCs]
active = ''
[kill_1d]
type = KillRayBC
boundary = 'left right'
[]
[kill_2d]
type = KillRayBC
boundary = 'top right bottom left'
[]
[kill_3d]
type = KillRayBC
boundary = 'top right bottom left front back'
[]
[]
[UserObjects/study]
type = BackfaceCullingStudyTest
ray_kernel_coverage_check = false
vertex_to_vertex = true
centroid_to_vertex = true
centroid_to_centroid = true
side_aq = true
centroid_aq = true
edge_to_edge = false
compute_expected_distance = true
execute_on = initial
[]
[Postprocessors]
[total_distance]
type = RayTracingStudyResult
study = study
result = total_distance
[]
[expected_distance]
type = LotsOfRaysExpectedDistance
lots_of_rays_study = study
[]
[distance_difference]
type = DifferencePostprocessor
value1 = total_distance
value2 = expected_distance
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
[]
[Outputs]
exodus = false
csv = true
[]