- positionsPositions
C++ Type:std::vector<libMesh::Point>
Controllable:No
Description:Positions
InputPositions
Positions set directly from a user parameter in the input file
This object should be used to specify a few positions. A FilePositions should be preferred if there are many positions.
Input Parameters
- initial_positionsPositions at the beginning of the simulation
C++ Type:PositionsName
Controllable:No
Description:Positions at the beginning of the simulation
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
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).
- execute_onNONEThe 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:NONE
C++ Type:ExecFlagEnum
Options:XFEM_MARK, FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, LINEAR_CONVERGENCE, NONLINEAR, NONLINEAR_CONVERGENCE, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, MULTIAPP_FIXED_POINT_CONVERGENCE, FINAL, CUSTOM, TRANSFER
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.
- 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
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
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
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
Controllable:No
Description:Forces the UserObject to be executed in PREIC during initial setup
Execution Scheduling Parameters
- auto_broadcastFalseWether Positions should be broadcasted across all ranks
Default:False
C++ Type:bool
Controllable:No
Description:Wether Positions should be broadcasted across all ranks
- auto_sortFalseWhether Positions should be sorted by coordinates
Default:False
C++ Type:bool
Controllable:No
Description:Whether Positions should be sorted by coordinates
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
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
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- outputsVector of output names where you would like to restrict the output of variables(s) associated with this object
C++ Type:std::vector<OutputName>
Controllable:No
Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object
- 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
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.
Advanced Parameters
- 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.
- 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
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.
Material Property Retrieval Parameters
Input Files
- (test/tests/transfers/general_field/nearest_node/nearest_position/main.i)
- (test/tests/meshdivisions/cylindrical_division.i)
- (test/tests/transfers/general_field/nearest_node/nearest_app/main.i)
- (test/tests/transfers/general_field/nearest_node/nearest_position/main_between_multiapp.i)
- (test/tests/transfers/general_field/functor/siblings/main_between_multiapp_functor.i)
- (test/tests/meshdivisions/nearest_position_division.i)
- (test/tests/positions/input_positions.i)
- (test/tests/meshdivisions/cartesian_division.i)
- (test/tests/transfers/general_field/nearest_node/nearest_position/main_single_sub.i)
- (test/tests/meshdivisions/spherical_division.i)
- (test/tests/transfers/general_field/shape_evaluation/between_siblings/main_between_multiapp.i)
- (test/tests/positions/distributed_positions.i)
- (test/tests/transfers/general_field/nearest_node/nearest_app/main_between_multiapp.i)
- (test/tests/transfers/general_field/user_object/nearest_position/main_between_multiapp.i)
- (test/tests/vectorpostprocessors/positions_functor_value_sampler/positions_functor_sampler.i)
- (test/tests/positions/reporter_positions.i)
- (test/tests/positions/creating_multiapps/apps_from_positions.i)
- (test/tests/transfers/general_field/user_object/nearest_position/main.i)
- (test/tests/positions/transformed_positions.i)
- (test/tests/mfem/transfers/sibling_transfers/mfem_main_between_multiapp.i)
- (modules/reactor/test/tests/meshdivisions/hexagonal_division_positions.i)
- (test/tests/mfem/transfers/sibling_transfers/main_between_multiapp.i)
(test/tests/transfers/general_field/nearest_node/nearest_position/main.i)
# Base input for testing transfers. It has the following complexities:
# - more than one subapp
# - transfers both from and to the subapps
# - both nodal and elemental variables
# Tests derived from this input may add complexities through command line arguments
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[AuxVariables]
[to_sub]
[InitialCondition]
type = FunctionIC
function = '1 + 2*x*x + 3*y*y*y'
[]
[]
[to_sub_elem]
order = CONSTANT
family = MONOMIAL
[InitialCondition]
type = FunctionIC
function = '2 + 2*x*x + 3*y*y*y'
[]
[]
[from_sub]
initial_condition = -1
[]
[from_sub_elem]
order = CONSTANT
family = MONOMIAL
initial_condition = -1
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
verbose_multiapps = true
[]
[Outputs]
[out]
type = Exodus
overwrite = true
hide = 'to_sub to_sub_elem'
[]
[]
[Positions]
[input]
type = InputPositions
positions = '1e-6 0 0 0.4 0.6001 0'
[]
[]
[MultiApps]
[sub]
type = FullSolveMultiApp
positions_objects = input
app_type = MooseTestApp
input_files = sub.i
output_in_position = true
execute_on = TIMESTEP_END
[]
[]
[Transfers]
[to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = sub
source_variable = to_sub
variable = from_main
# Transfer relies on two nodes that are equidistant to the target point
search_value_conflicts = false
[]
[to_sub_elem]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = sub
source_variable = to_sub_elem
variable = from_main_elem
[]
[from_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub
source_variable = to_main
variable = from_sub
use_nearest_position = input
bbox_factor = 100
# Transfer relies on two nodes that are equidistant to the target point
search_value_conflicts = false
[]
[from_sub_elem]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub
source_variable = to_main_elem
variable = from_sub_elem
use_nearest_position = input
bbox_factor = 100
[]
[]
(test/tests/meshdivisions/cylindrical_division.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dim = 3
dx = '1.5 2.4 0.1'
dy = '1.3 0.9'
dz = '0.4 0.5 0.6 0.7'
ix = '2 1 1'
iy = '2 3'
iz = '1 1 1 1'
[]
# To keep VPP output consistently ordered
allow_renumbering = false
[]
[MeshDivisions]
active = 'cylindrical_div'
[cylindrical_div]
type = CylindricalGridDivision
axis_direction = '0 0 1'
center = '1 1 0'
azimuthal_start = '1 0 0'
# Number of bins
n_radial = 3
n_azimuthal = 4
n_axial = 8
# Extent of the cylinder
cylinder_axial_min = 0.5
cylinder_axial_max = 2
r_min = 0.5
r_max = 4
[]
[cylindrical_div_positions]
type = CylindricalGridDivision
axis_direction = '0 0 1'
center_positions = center
azimuthal_start = '1 0 0'
# Number of bins
n_radial = 3
n_azimuthal = 4
n_axial = 8
# Extent of the cylinder
cylinder_axial_min = 0.5
cylinder_axial_max = 2
r_min = 0.5
r_max = 4
[]
[]
[Positions]
[center]
type = InputPositions
positions = '1 1 0'
[]
[]
[AuxVariables]
[div]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[mesh_div]
type = MeshDivisionAux
variable = div
mesh_division = 'cylindrical_div'
[]
[]
[VectorPostprocessors]
[div_out]
type = ElementValueSampler
variable = 'div'
sort_by = 'id'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(test/tests/transfers/general_field/nearest_node/nearest_app/main.i)
# Base input for testing transfers. It has the following complexities:
# - more than one subapp
# - transfers from the subapps
# - both nodal and elemental variables
# - uses the nearest subapp as the source for any given point
# Tests derived from this input may add complexities through command line arguments
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[AuxVariables]
[from_sub]
initial_condition = -1
[]
[from_sub_elem]
order = CONSTANT
family = MONOMIAL
initial_condition = -1
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
verbose_multiapps = true
[]
[Outputs]
[out]
type = Exodus
overwrite = true
[]
[]
[Positions]
[input]
type = InputPositions
positions = '1e-6 0 0 0.4 0.6001 0'
[]
[]
[MultiApps]
[sub]
type = FullSolveMultiApp
positions_objects = input
app_type = MooseTestApp
input_files = sub.i
output_in_position = true
execute_on = TIMESTEP_END
[]
[]
[Transfers]
[from_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub
source_variable = to_main
variable = from_sub
assume_nearest_app_holds_nearest_location = true
bbox_factor = 100
# Transfer relies on two nodes that are equidistant to the target point
search_value_conflicts = false
[]
[from_sub_elem]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub
source_variable = to_main_elem
variable = from_sub_elem
assume_nearest_app_holds_nearest_location = true
bbox_factor = 100
[]
[]
(test/tests/transfers/general_field/nearest_node/nearest_position/main_between_multiapp.i)
# Base input for testing between-multiapp transfers. It has the following complexities:
# - multiapps may not be run with the same number of ranks
# - both nodal and elemental variables
# Tests derived from this input may add or remove complexities through command line arguments
[Problem]
solve = false
[]
[Mesh]
type = GeneratedMesh
dim = 2
[]
[Positions]
[input_app1]
type = InputPositions
positions = '0 0.1 0
0.5 0.5 0'
[]
[input_app2]
type = InputPositions
# offsets to avoid indetermination
# but small enough to remain below to bounding box factor bump
positions = '0.0000001 0.30000000001 0
0.60000000001 0.5003 0'
[]
[]
# This application uses at most 3 processes
[MultiApps/ma1]
type = TransientMultiApp
input_files = sub_between_diffusion.i
max_procs_per_app = 3
positions_objects = 'input_app1'
output_in_position = true
[]
# This application will use as many processes as the main app
[MultiApps/ma2]
type = TransientMultiApp
input_files = sub_between_diffusion.i
positions_objects = 'input_app2'
output_in_position = true
[]
[Transfers]
# Nodal to nodal variables
[app1_to_2_nodal_nodal]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = ma1
to_multi_app = ma2
source_variable = sent_nodal
variable = received_nodal
use_nearest_position = input_app1
# slight inflation to avoid floating point issues on borders
bbox_factor = 1.000001
search_value_conflicts = true
group_subapps = true
[]
[app2_to_1_nodal_nodal]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = ma2
to_multi_app = ma1
source_variable = sent_nodal
variable = received_nodal
use_nearest_position = input_app2
bbox_factor = 1.000001
search_value_conflicts = true
group_subapps = true
[]
# Elemental to elemental variables
[app1_to_2_elem_elem]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = ma1
to_multi_app = ma2
source_variable = sent_elem
variable = received_elem
use_nearest_position = input_app1
bbox_factor = 1.000001
search_value_conflicts = true
group_subapps = true
[]
[app2_to_1_elem_elem]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = ma2
to_multi_app = ma1
source_variable = sent_elem
variable = received_elem
use_nearest_position = input_app2
bbox_factor = 1.000001
search_value_conflicts = true
group_subapps = true
[]
[]
[Executioner]
type = Transient
num_steps = 1
[]
(test/tests/transfers/general_field/functor/siblings/main_between_multiapp_functor.i)
[Problem]
solve = false
[]
[Mesh]
type = GeneratedMesh
dim = 2
[]
[Positions]
[input_app1]
type = InputPositions
# Stacked vertically with a gap so the two sub-app domains do not overlap:
# ma10 covers [0,1]x[0.1,1.1], ma11 covers [-eps,1-eps]x[1.2,2.2]
# x-offsets avoid indetermination on vertical Voronoi boundaries
positions = '0 0.1 0
-0.0000001 1.2 0'
[]
[input_app2]
type = InputPositions
# Stacked vertically with a gap so the two sub-app domains do not overlap:
# ma20 covers [eps,1+eps]x[0.3,1.3], ma21 covers [2eps,1+2eps]x[1.4,2.4]
# x-offsets avoid indetermination on vertical Voronoi boundaries
positions = '0.0000001 0.30000000001 0
0.0000002 1.40000000001 0'
[]
[]
[MultiApps/ma1]
type = TransientMultiApp
input_files = ../../nearest_node/nearest_position/sub_between_diffusion.i
positions_objects = 'input_app1'
output_in_position = true
[]
[MultiApps/ma2]
type = TransientMultiApp
input_files = ../../nearest_node/nearest_position/sub_between_diffusion.i
positions_objects = 'input_app2'
output_in_position = true
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Transfers]
# Nodal to nodal variables
[app1_to_2_nodal_nodal]
type = MultiAppGeneralFieldFunctorTransfer
from_multi_app = ma1
to_multi_app = ma2
source_functors = sent_nodal
variable = received_nodal
extrapolation_behavior = nearest-node
use_nearest_position = input_app1
# slight inflation to avoid floating point issues on borders
bbox_factor = 1.000001
search_value_conflicts = true
group_subapps = true
[]
[app2_to_1_nodal_nodal]
type = MultiAppGeneralFieldFunctorTransfer
from_multi_app = ma2
to_multi_app = ma1
source_functors = sent_nodal
variable = received_nodal
extrapolation_behavior = nearest-node
use_nearest_position = input_app2
bbox_factor = 1.000001
search_value_conflicts = true
group_subapps = true
[]
# Elemental to elemental variables
[app1_to_2_elem_elem]
type = MultiAppGeneralFieldFunctorTransfer
from_multi_app = ma1
to_multi_app = ma2
source_functors = sent_elem
variable = received_elem
extrapolation_behavior = nearest-elem
use_nearest_position = input_app1
bbox_factor = 1.000001
search_value_conflicts = true
group_subapps = true
[]
[app2_to_1_elem_elem]
type = MultiAppGeneralFieldFunctorTransfer
from_multi_app = ma2
to_multi_app = ma1
source_functors = sent_elem
variable = received_elem
extrapolation_behavior = nearest-elem
use_nearest_position = input_app2
bbox_factor = 1.000001
search_value_conflicts = true
group_subapps = true
[]
[]
(test/tests/meshdivisions/nearest_position_division.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dim = 3
dx = '1.5 2.4 0.1'
dy = '1.3 0.9'
dz = '0.4 0.5 0.6 0.7'
ix = '2 1 1'
iy = '2 3'
iz = '1 1 1 1'
[]
# To keep VPP output consistently ordered
allow_renumbering = false
[]
[Positions]
[input]
type = InputPositions
# avoid indetermination
positions = '0.0001 0 0
1 0 0
1.46543 2.1233 3.1211'
[]
[]
[MeshDivisions]
[nearest_pos_div]
type = NearestPositionsDivision
positions = input
[]
[]
[Functions]
[xf]
type = ParsedFunction
expression = 'x'
[]
[]
[AuxVariables]
[div]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[mesh_div]
type = MeshDivisionAux
variable = div
mesh_division = 'nearest_pos_div'
[]
[]
[VectorPostprocessors]
[div_out]
type = ElementValueSampler
variable = 'div'
sort_by = 'id'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(test/tests/positions/input_positions.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dx = 1
dim = 1
[]
[]
[Positions]
[input]
type = InputPositions
positions = '0.1 0 0
0.2 0 0.1'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
# Test recover
num_steps = 2
[]
[Outputs]
[out]
type = JSON
execute_system_information_on = none
[]
[]
(test/tests/meshdivisions/cartesian_division.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dim = 3
dx = '1.5 2.4 0.1'
dy = '1.3 0.9'
dz = '0.4 0.5 0.6 0.7'
ix = '2 1 1'
iy = '2 3'
iz = '1 1 1 1'
[]
# To keep VPP output consistently ordered
allow_renumbering = false
[]
[MeshDivisions]
active = 'cartesian_div'
[cartesian_div]
type = CartesianGridDivision
bottom_left = '0.1 0.5 0.5'
top_right = '5 2 1'
nx = '3'
ny = '4'
nz = '1'
[]
[cartesian_div_center]
type = CartesianGridDivision
center = '2.55 1.25 0.75'
widths = '4.9 1.5 0.5'
nx = '3'
ny = '4'
nz = '1'
[]
[cartesian_div_center_pos]
type = CartesianGridDivision
center_positions = 'center'
widths = '4.9 1.5 0.5'
nx = '3'
ny = '4'
nz = '1'
[]
[]
[Positions]
[center]
type = InputPositions
positions = '2.55 1.25 0.75'
[]
[]
[AuxVariables]
[div]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[mesh_div]
type = MeshDivisionAux
variable = div
mesh_division = 'cartesian_div'
[]
[]
[VectorPostprocessors]
[div_out]
type = ElementValueSampler
variable = 'div'
sort_by = 'id'
outputs = csv
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(test/tests/transfers/general_field/nearest_node/nearest_position/main_single_sub.i)
# Base input for testing transfers. It has the following complexities:
# - more than one subapp
# - transfers both from and to the subapps
# - both nodal and elemental variables
# Tests derived from this input may add complexities through command line arguments
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[AuxVariables]
[to_sub]
[InitialCondition]
type = FunctionIC
function = '1 + 2*x*x + 3*y*y*y'
[]
[]
[to_sub_elem]
order = CONSTANT
family = MONOMIAL
[InitialCondition]
type = FunctionIC
function = '2 + 2*x*x + 3*y*y*y'
[]
[]
[from_sub]
initial_condition = -1
[]
[from_sub_elem]
order = CONSTANT
family = MONOMIAL
initial_condition = -1
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
verbose_multiapps = true
[]
[Outputs]
[out]
type = Exodus
overwrite = true
hide = 'to_sub to_sub_elem'
[]
[]
[Positions]
[single]
type = InputPositions
# Tiny offset to steer clear of equidistance
positions = '0.000001 0.0000000001 0'
[]
[partition_app_domain]
type = InputPositions
# Tiny offsets to steer clear of equi-distance
# The top left and bottom right are closer to top right than to the bottom left corner
# This makes it so that the bottom left "nearest-area" is larger
# and the top-right "nearest" area is smaller
positions = '0.1 0.12 0
0.900008 0.130000000001 0
0.85000007 0.8500001 0
0.10001 0.75003 0'
[]
[]
[MultiApps]
[sub]
type = FullSolveMultiApp
positions_objects = single
app_type = MooseTestApp
input_files = sub_holes.i
output_in_position = true
execute_on = TIMESTEP_END
[]
[]
[Transfers]
[from_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub
source_variable = to_main
variable = from_sub
use_nearest_position = partition_app_domain
search_value_conflicts = true
bbox_factor = 10
group_subapps = true
[]
[from_sub_elem]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = sub
source_variable = to_main_elem
variable = from_sub_elem
use_nearest_position = partition_app_domain
search_value_conflicts = true
bbox_factor = 10
group_subapps = true
[]
[]
(test/tests/meshdivisions/spherical_division.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dim = 3
dx = '1.5 2.4 0.1'
dy = '1.3 0.9'
dz = '0.4 0.5 0.6 0.7'
ix = '2 1 1'
iy = '2 3'
iz = '1 1 1 1'
[]
# To keep VPP output consistently ordered
allow_renumbering = false
[]
[MeshDivisions]
active = 'spherical_div'
[spherical_div]
type = SphericalGridDivision
center = '1 1 0'
# Number of bins
n_radial = 3
# Extent of the sphere
r_min = 0.5
r_max = 4
[]
[spherical_div_positions]
type = SphericalGridDivision
center_positions = center
# Number of bins
n_radial = 3
# Extent of the sphere
r_min = 0.5
r_max = 4
[]
[]
[Positions]
[center]
type = InputPositions
positions = '1 1 0'
[]
[]
[AuxVariables]
[div]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[mesh_div]
type = MeshDivisionAux
variable = div
mesh_division = 'spherical_div'
[]
[]
[VectorPostprocessors]
[div_out]
type = ElementValueSampler
variable = 'div'
sort_by = 'id'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(test/tests/transfers/general_field/shape_evaluation/between_siblings/main_between_multiapp.i)
# Base input for testing between-multiapp transfers. It has the following complexities:
# - multiapps may not be run with the same number of ranks
# - both nodal and elemental variables
# - transfers between mixes of nodal and elemental variables
# Tests derived from this input may add or remove complexities through command line arguments
[Problem]
solve = false
[]
[Mesh]
type = GeneratedMesh
dim = 2
[]
# This application use at most 3 processes
[MultiApps]
[ma1]
type = TransientMultiApp
input_files = sub_between_diffusion1.i
max_procs_per_app = 3
output_in_position = true
[]
[]
# This application will use as many processes as the main app
[MultiApps]
[ma2]
type = TransientMultiApp
input_files = sub_between_diffusion2.i
output_in_position = true
[]
[]
[Transfers]
# Nodal to nodal variables
[app1_to_2_nodal_nodal]
type = MultiAppGeneralFieldShapeEvaluationTransfer
from_multi_app = ma1
to_multi_app = ma2
source_variable = sent_nodal
variable = received_nodal
extrapolation_constant = -1
# Test features non-overlapping meshes
error_on_miss = false
[]
[app2_to_1_nodal_nodal]
type = MultiAppGeneralFieldShapeEvaluationTransfer
from_multi_app = ma2
to_multi_app = ma1
source_variable = sent_nodal
variable = received_nodal
extrapolation_constant = -1
# Test features non-overlapping meshes
error_on_miss = false
[]
# Elemental to elemental variables
[app1_to_2_elem_elem]
type = MultiAppGeneralFieldShapeEvaluationTransfer
from_multi_app = ma1
to_multi_app = ma2
source_variable = sent_elem
variable = received_elem
extrapolation_constant = -1
# Test features non-overlapping meshes
error_on_miss = false
[]
[app2_to_1_elem_elem]
type = MultiAppGeneralFieldShapeEvaluationTransfer
from_multi_app = ma2
to_multi_app = ma1
source_variable = sent_elem
variable = received_elem
extrapolation_constant = -1
# Test features non-overlapping meshes
error_on_miss = false
[]
# Elemental to nodal variables
[app1_to_2_elem_nodal]
type = MultiAppGeneralFieldShapeEvaluationTransfer
from_multi_app = ma1
to_multi_app = ma2
source_variable = sent_elem
variable = received_nodal
extrapolation_constant = -1
# Test features non-overlapping meshes
error_on_miss = false
[]
[app2_to_1_elem_nodal]
type = MultiAppGeneralFieldShapeEvaluationTransfer
from_multi_app = ma2
to_multi_app = ma1
source_variable = sent_elem
variable = received_nodal
extrapolation_constant = -1
# Test features non-overlapping meshes
error_on_miss = false
[]
# Nodal to elemental variables
[app1_to_2_nodal_elem]
type = MultiAppGeneralFieldShapeEvaluationTransfer
from_multi_app = ma1
to_multi_app = ma2
source_variable = sent_nodal
variable = received_elem
extrapolation_constant = -1
# Test features non-overlapping meshes
error_on_miss = false
[]
[app2_to_1_nodal_elem]
type = MultiAppGeneralFieldShapeEvaluationTransfer
from_multi_app = ma2
to_multi_app = ma1
source_variable = sent_nodal
variable = received_elem
extrapolation_constant = -1
# Test features non-overlapping meshes
error_on_miss = false
[]
[]
# To create multiple subapps for the 1 to N and N to M tests
# The subapps should not overlap for shape evaluation transfers
# or at least, the block restriction of the source variables between
# applications should not overlap
[Positions]
[app1_locs]
type = InputPositions
positions = '0 0 0
0 1.01 0'
[]
# Keep in mind app2's mesh is offset
[app2_locs]
type = InputPositions
positions = '-0.7 -0.45 0
0.7 0.3 0
-0.5 0.5 0'
[]
[]
[Executioner]
type = Transient
num_steps = 1
[]
(test/tests/positions/distributed_positions.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dx = 1
dim = 1
[]
[]
[Positions]
[input]
type = InputPositions
positions = '0 0 0
1 0 0
0 1 0
1 1 0'
outputs = none
[]
[input_2]
type = InputPositions
positions = '10 0 0
0 10 0'
outputs = none
[]
[distributed]
type = DistributedPositions
positions = 'input_2 input'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = JSON
execute_on = FINAL
execute_system_information_on = none
[]
[]
(test/tests/transfers/general_field/nearest_node/nearest_app/main_between_multiapp.i)
# Base input for testing between-multiapp transfers. It has the following complexities:
# - multiapps may not be run with the same number of ranks
# - both nodal and elemental variables
# Tests derived from this input may add or remove complexities through command line arguments
[Problem]
solve = false
[]
[Mesh]
type = GeneratedMesh
dim = 2
[]
[Positions]
[input_app1]
type = InputPositions
positions = '0 0.1 0
0.5 0.5 0'
[]
[input_app2]
type = InputPositions
# offsets to avoid indetermination
# but small enough to remain below to bounding box factor bump
positions = '0.0000001 0.30000000001 0
0.60000000001 0.5003 0'
[]
[]
# This application uses at most 3 processes
[MultiApps/ma1]
type = TransientMultiApp
input_files = sub_between_diffusion.i
max_procs_per_app = 3
positions_objects = 'input_app1'
output_in_position = true
# We must ensure that each point on each app is closest to the app
# position than to any other app position.
# This is to ensure that nearest-app is the same as nearest-position with the app position
cli_args = "Mesh/gen/xmax=0.1;Mesh/gen/ymax=0.1"
[]
# This application will use as many processes as the main app
[MultiApps/ma2]
type = TransientMultiApp
input_files = sub_between_diffusion.i
positions_objects = 'input_app2'
output_in_position = true
cli_args = "Mesh/gen/xmax=0.1;Mesh/gen/ymax=0.1"
[]
# slight inflation to avoid floating point issues on borders
bbox_factor_tr = 1.0001
[Transfers]
# Nodal to nodal variables
[app1_to_2_nodal_nodal]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = ma1
to_multi_app = ma2
source_variable = sent_nodal
variable = received_nodal
assume_nearest_app_holds_nearest_location = true
search_value_conflicts = true
bbox_factor = ${bbox_factor_tr}
[]
[app2_to_1_nodal_nodal]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = ma2
to_multi_app = ma1
source_variable = sent_nodal
variable = received_nodal
assume_nearest_app_holds_nearest_location = true
search_value_conflicts = true
bbox_factor = ${bbox_factor_tr}
[]
# Elemental to elemental variables
[app1_to_2_elem_elem]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = ma1
to_multi_app = ma2
source_variable = sent_elem
variable = received_elem
assume_nearest_app_holds_nearest_location = true
search_value_conflicts = true
bbox_factor = ${bbox_factor_tr}
[]
[app2_to_1_elem_elem]
type = MultiAppGeneralFieldNearestLocationTransfer
from_multi_app = ma2
to_multi_app = ma1
source_variable = sent_elem
variable = received_elem
assume_nearest_app_holds_nearest_location = true
search_value_conflicts = true
bbox_factor = ${bbox_factor_tr}
[]
[]
[Executioner]
type = Transient
num_steps = 1
[]
(test/tests/transfers/general_field/user_object/nearest_position/main_between_multiapp.i)
# Base input for testing between-multiapp transfers. It has the following complexities:
# - multiapps may not be run with the same number of ranks
# - both nodal and elemental variables
# Tests derived from this input may add or remove complexities through command line arguments
[Problem]
solve = false
[]
[Mesh]
type = GeneratedMesh
dim = 2
[]
[Positions]
[input_app1]
type = InputPositions
positions = '0 0.1 0
0.5 0.5 0'
[]
[input_app2]
type = InputPositions
# offsets to avoid indetermination
# but small enough to remain below to bounding box factor bump
positions = '0 0.5000000000001 0
0.60000000001 0.5 0'
[]
[]
# This application uses at most 3 processes
[MultiApps]
[ma1]
type = TransientMultiApp
input_files = sub_between_diffusion.i
max_procs_per_app = 3
positions_objects = 'input_app1'
output_in_position = true
[]
[]
# This application will use as many processes as the main app
[MultiApps]
[ma2]
type = TransientMultiApp
input_files = sub_between_diffusion.i
positions_objects = 'input_app2'
output_in_position = true
[]
[]
[Transfers]
# Nodal to nodal variables
[app1_to_2_nodal_nodal]
type = MultiAppGeneralFieldUserObjectTransfer
from_multi_app = ma1
to_multi_app = ma2
source_user_object = sent_nodal
variable = received_nodal
extrapolation_constant = -1
use_nearest_position = input_app1
# slight inflation to avoid floating point issues on borders
bbox_factor = 1.001
# Test features non-overlapping meshes
error_on_miss = false
[]
[app2_to_1_nodal_nodal]
type = MultiAppGeneralFieldUserObjectTransfer
from_multi_app = ma2
to_multi_app = ma1
source_user_object = sent_nodal
variable = received_nodal
extrapolation_constant = -1
use_nearest_position = input_app2
bbox_factor = 1.001
# Test features non-overlapping meshes
error_on_miss = false
[]
# Elemental to elemental variables
[app1_to_2_elem_elem]
type = MultiAppGeneralFieldUserObjectTransfer
from_multi_app = ma1
to_multi_app = ma2
source_user_object = sent_elem
variable = received_elem
extrapolation_constant = -1
use_nearest_position = input_app1
bbox_factor = 1.001
# Test features non-overlapping meshes
error_on_miss = false
[]
[app2_to_1_elem_elem]
type = MultiAppGeneralFieldUserObjectTransfer
from_multi_app = ma2
to_multi_app = ma1
source_user_object = sent_elem
variable = received_elem
extrapolation_constant = -1
use_nearest_position = input_app2
bbox_factor = 1.001
# Test features non-overlapping meshes
error_on_miss = false
[]
[]
[Executioner]
type = Transient
num_steps = 1
[]
(test/tests/vectorpostprocessors/positions_functor_value_sampler/positions_functor_sampler.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[Problem]
solve = false
[]
[AuxVariables]
[fv]
type = MooseVariableFVReal
initial_condition = 3
[]
[]
[Functions]
[fx]
type = ParsedFunction
expression = 'x'
[]
[fy]
type = ParsedFunction
expression = 'y'
[]
[]
[Positions]
[pos]
type = InputPositions
positions = '0.11 0.11 0
0.21 0.15 0
0.11 0.21 0'
[]
[]
[VectorPostprocessors]
[point_sample]
type = PositionsFunctorValueSampler
functors = 'fv 2 fx fy'
positions = 'pos'
sort_by = id
execute_on = TIMESTEP_END
# the finite volume variable is discontinuous at faces
# Note that we are not sampling on faces so it does not matter,
# we could set it to 'false' to have less checks when sampling
discontinuous = true
[]
[]
[Executioner]
type = Steady
[]
[Outputs]
execute_on = 'timestep_end'
csv = true
[]
(test/tests/positions/reporter_positions.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dx = 1
dim = 1
[]
[]
[Positions]
[input]
type = InputPositions
positions = '0 0 1
1 0 2'
outputs = none
[]
[input_2]
type = InputPositions
positions = '0.1 0.1 1
1.2 0 2.2'
outputs = none
[]
[reporter]
type = ReporterPositions
reporters = 'input/positions_1d input_2/positions_1d'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = JSON
execute_on = FINAL
execute_system_information_on = none
[]
[]
(test/tests/positions/creating_multiapps/apps_from_positions.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dx = 1
dim = 1
[]
[]
[AuxVariables]
[u]
[]
[]
[Positions]
[input]
type = InputPositions
positions = '0 1 0
1 0 2'
outputs = none
[]
[file]
type = FilePositions
files = '../../multiapps/positions_from_file/positions.txt'
outputs = none
[]
[reporter_forward]
type = ReporterPositions
reporters = 'file/positions_1d'
outputs = none
[]
[mesh]
type = ElementCentroidPositions
outputs = none
[]
[results_m1]
type = MultiAppPositions
multiapps = 'm1'
[]
[results_m2]
type = MultiAppPositions
multiapps = 'm2'
[]
[results_m3]
type = MultiAppPositions
multiapps = 'm3'
[]
[results_m4]
type = MultiAppPositions
multiapps = 'm4'
[]
[]
[MultiApps]
[m1]
type = FullSolveMultiApp
input_files = 'apps_from_positions.i'
cli_args = "MultiApps/active='';Positions/active='';Outputs/active=''"
positions_objects = input
[]
[m2]
type = FullSolveMultiApp
input_files = 'apps_from_positions.i'
cli_args = "MultiApps/active='';Positions/active='';Outputs/active=''"
positions_objects = 'input file'
[]
# Those Positions are executed too late
[m3]
type = TransientMultiApp
input_files = 'apps_from_positions.i'
cli_args = "MultiApps/active='';Positions/active='';Outputs/active=''"
positions_objects = reporter_forward
[]
[m4]
type = TransientMultiApp
input_files = 'apps_from_positions.i'
cli_args = "MultiApps/active='';Positions/active='';Outputs/active=''"
positions_objects = mesh
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Transient
num_steps = 1
[]
[Outputs]
[out]
type = JSON
execute_on = FINAL
execute_system_information_on = none
[]
[]
(test/tests/transfers/general_field/user_object/nearest_position/main.i)
# Base input for testing transfers. It has the following complexities:
# - more than one subapp
# - transfers both from and to the subapps
# - both nodal and elemental variables
# Tests derived from this input may add complexities through command line arguments
[Mesh]
type = GeneratedMesh
dim = 2
nx = 10
ny = 10
[]
[AuxVariables]
[from_sub]
initial_condition = -1
[]
[from_sub_elem]
order = CONSTANT
family = MONOMIAL
initial_condition = -1
[]
[to_sub]
[InitialCondition]
type = FunctionIC
function = '1 + 2*x*x + 3*y*y*y'
[]
[]
[to_sub_elem]
order = CONSTANT
family = MONOMIAL
[InitialCondition]
type = FunctionIC
function = '2 + 2*x*x + 3*y*y*y'
[]
[]
[]
[UserObjects]
[to_sub]
type = LayeredAverage
direction = x
num_layers = 10
variable = to_sub
execute_on = TIMESTEP_BEGIN
[]
[to_sub_elem]
type = LayeredAverage
direction = x
num_layers = 10
variable = to_sub_elem
execute_on = TIMESTEP_BEGIN
[]
[]
[Executioner]
type = Steady
[]
[Problem]
solve = false
verbose_multiapps = true
[]
[Outputs]
[out]
type = Exodus
hide = 'to_sub to_sub_elem'
overwrite = true
[]
[]
[Positions]
[input]
type = InputPositions
positions = '1e-6 0 0 0.4 0.4001 0 0.700001 0.1 0'
[]
[]
[MultiApps]
[sub]
# 1 on corner, one in the center and one close to a corner
type = FullSolveMultiApp
positions_objects = input
app_type = MooseTestApp
input_files = sub.i
output_in_position = true
execute_on = TIMESTEP_END
[]
[]
[Transfers]
[to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
to_multi_app = sub
source_user_object = to_sub
variable = from_main
[]
[to_sub_elem]
type = MultiAppGeneralFieldUserObjectTransfer
to_multi_app = sub
source_user_object = to_sub_elem
variable = from_main_elem
[]
[from_sub]
type = MultiAppGeneralFieldUserObjectTransfer
from_multi_app = sub
source_user_object = to_main
variable = from_sub
use_nearest_app = true
bbox_factor = 100
[]
[from_sub_elem]
type = MultiAppGeneralFieldUserObjectTransfer
from_multi_app = sub
source_user_object = to_main_elem
variable = from_sub_elem
use_nearest_app = true
bbox_factor = 100
[]
[]
(test/tests/positions/transformed_positions.i)
[Mesh]
[cmg]
type = CartesianMeshGenerator
dx = 1
dim = 1
[]
[]
[Positions]
[input]
type = InputPositions
positions = '0 0 0
1 0 0
0 1 0'
outputs = none
[]
[scale]
type = TransformedPositions
base_positions = 'input'
vector_value = '1 2 3'
transform = 'SCALE'
[]
[rotate]
type = TransformedPositions
base_positions = 'input'
vector_value = '0 0 90'
transform = 'ROTATE_XYZ'
[]
[translate]
type = TransformedPositions
base_positions = 'input'
vector_value = '10 0 0'
transform = 'TRANSLATE'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
[out]
type = JSON
execute_on = FINAL
execute_system_information_on = none
[]
[]
(test/tests/mfem/transfers/sibling_transfers/mfem_main_between_multiapp.i)
# Base input for testing between-multiapp transfers. It has the following complexities:
# - multiapps may not be run with the same number of ranks
# - both nodal and elemental variables
# - transfers between mixes of nodal and elemental variables
# Tests derived from this input may add or remove complexities through command line arguments
[Problem]
type = MFEMProblem
solve = false
[]
[Mesh]
type = MFEMMesh
file = ../../mesh/square_quad9.e
[]
[MultiApps]
[mfem_send]
type = TransientMultiApp
input_files = mfem_sub_between_diffusion.i
[]
[mfem_recv]
type = TransientMultiApp
input_files = mfem_sub_between_diffusion.i
cli_args = Outputs/inactive=''
[]
[]
[Transfers]
# Nodal to nodal variables
[mfem_to_mfem_nodal_nodal]
type = MultiAppMFEMShapeEvaluationTransfer
from_multi_app = mfem_send
to_multi_app = mfem_recv
source_variables = sent_nodal
variables = received_nodal
[]
[]
[Executioner]
type = MFEMTransient
num_steps = 2
[]
# Positions used to create multiple subapps for the 1 to N tests
[Positions]
[mfem_send_locs]
type = InputPositions
positions = '0 0 0'
[]
[mfem_recv_locs]
type = InputPositions
positions = '0 0 0
0.1 0.4 0
0.7 0.2 0'
[]
[]
[Outputs]
file_base = OutputData/MFEMtoMFEMSiblingTransfer
[]
(modules/reactor/test/tests/meshdivisions/hexagonal_division_positions.i)
pin_hex_size = 5
n_rings = 2
hex_size = '${fparse (2*n_rings - 1) * pin_hex_size}'
[Mesh]
[hex_pin]
type = PolygonConcentricCircleMeshGenerator
num_sides = 6
num_sectors_per_side = '2 2 2 2 2 2'
# Two position rings
ring_radii = '${fparse pin_hex_size / 2}'
ring_intervals = 1
polygon_size = ${pin_hex_size}
preserve_volumes = on
[]
[pattern_assembly]
type = PatternedHexMeshGenerator
inputs = 'hex_pin'
pattern = '0 0;
0 0 0;
0 0'
hexagon_size = ${hex_size}
background_intervals = 1
# If we deform the pin mesh to ease the transition with the background,
# we can get the wrong index for the hexagonal division
deform_non_circular_region = false
[]
[pattern_core]
type = PatternedHexMeshGenerator
inputs = 'pattern_assembly'
pattern = '0 0;
0 0 0;
0 0'
generate_core_metadata = true
pattern_boundary = none
# If we deform the pin mesh to ease the transition with the background,
# we can get the wrong index for the hexagonal division
deform_non_circular_region = false
[]
# To keep VPP output consistently ordered
allow_renumbering = false
[]
[Positions]
[assembly_centers]
type = InputPositions
# Assembly centers
positions = '0 0 0
${fparse -tan(pi/3) * hex_size} ${fparse -hex_size} 0
${fparse -tan(pi/3) * hex_size} ${fparse hex_size} 0
0 ${fparse -2 * hex_size} 0
0 ${fparse 2 * hex_size} 0
${fparse tan(pi/3) * hex_size} ${fparse -hex_size} 0
${fparse tan(pi/3) * hex_size} ${fparse hex_size} 0'
[]
[]
[MeshDivisions]
[hexagonal_div]
type = HexagonalGridDivision
nr = ${n_rings}
nz = 1
lattice_flat_to_flat = '${fparse 2 * hex_size}'
pin_pitch = '${fparse 2 * pin_hex_size}'
z_min = 0
z_max = 0
center_positions = assembly_centers
[]
[]
[AuxVariables]
[div]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[mesh_div]
type = MeshDivisionAux
variable = div
mesh_division = 'hexagonal_div'
[]
[]
[VectorPostprocessors]
[div_out]
type = ElementValueSampler
variable = 'div'
sort_by = 'id'
outputs = csv
[]
[]
[Postprocessors]
[npos]
type = NumMeshDivisions
mesh_division = 'hexagonal_div'
[]
[]
[Problem]
solve = false
[]
[Executioner]
type = Steady
[]
[Outputs]
csv = true
[]
(test/tests/mfem/transfers/sibling_transfers/main_between_multiapp.i)
# Base input for testing between-multiapp transfers. It has the following complexities:
# - multiapps may not be run with the same number of ranks
# - both nodal and elemental variables
# - transfers between mixes of nodal and elemental variables
# Tests derived from this input may add or remove complexities through command line arguments
[Problem]
solve = false
[]
[Mesh]
type = GeneratedMesh
dim = 2
[]
[MultiApps]
[mfem_sub]
type = TransientMultiApp
input_files = mfem_sub_between_diffusion.i
[]
[libmesh_sub]
type = TransientMultiApp
input_files = libmesh_sub_between_diffusion.i
[]
[]
[Transfers]
# Nodal to nodal variables
[mfem_to_libmesh_nodal_nodal]
type = MultiAppMFEMTolibMeshShapeEvaluationTransfer
from_multi_app = mfem_sub
to_multi_app = libmesh_sub
source_variables = sent_nodal
variables = received_nodal
[]
[libmesh_to_mfem_nodal_nodal]
type = MultiApplibMeshToMFEMShapeEvaluationTransfer
from_multi_app = libmesh_sub
to_multi_app = mfem_sub
source_variables = sent_nodal
variables = received_nodal
[]
# Elemental to elemental variables
[mfem_to_libmesh_elem_elem]
type = MultiAppMFEMTolibMeshShapeEvaluationTransfer
from_multi_app = mfem_sub
to_multi_app = libmesh_sub
source_variables = sent_elem
variables = received_elem
[]
[libmesh_to_mfem_elem_elem]
type = MultiApplibMeshToMFEMShapeEvaluationTransfer
from_multi_app = libmesh_sub
to_multi_app = mfem_sub
source_variables = sent_elem
variables = received_elem
[]
# Elemental to nodal variables
[mfem_to_libmesh_elem_nodal]
type = MultiAppMFEMTolibMeshShapeEvaluationTransfer
from_multi_app = mfem_sub
to_multi_app = libmesh_sub
source_variables = sent_elem
variables = received_nodal
[]
[libmesh_to_mfem_elem_nodal]
type = MultiApplibMeshToMFEMShapeEvaluationTransfer
from_multi_app = libmesh_sub
to_multi_app = mfem_sub
source_variables = sent_elem
variables = received_nodal
[]
# Nodal to elemental variables
[mfem_to_libmesh_nodal_elem]
type = MultiAppMFEMTolibMeshShapeEvaluationTransfer
from_multi_app = mfem_sub
to_multi_app = libmesh_sub
source_variables = sent_nodal
variables = received_elem
[]
[libmesh_to_mfem_nodal_elem]
type = MultiApplibMeshToMFEMShapeEvaluationTransfer
from_multi_app = libmesh_sub
to_multi_app = mfem_sub
source_variables = sent_nodal
variables = received_elem
[]
[]
[Executioner]
type = Transient
num_steps = 1
[]
# Positions used to create multiple subapps for the 1 to N and N to 1 tests
[Positions]
[mfem_locs]
type = InputPositions
positions = '0 0 0
0.2 0.5 0'
[]
[libmesh_locs]
type = InputPositions
positions = '0 0 0
0.1 0.4 0
0.7 0.2 0'
[]
[]