- casenameCase name for the NekRS input files; this is
in .par, .udf, .oudf, and .re2. C++ Type:std::string
Controllable:No
Description:Case name for the NekRS input files; this is
in .par, .udf, .oudf, and .re2.
NekRSProblem
This class performs all activities related to solving NekRS as a MOOSE application. This class also facilitates data transfers between NekRS's internal solution fields and MOOSE by reading and writing MooseVariables, Postprocessors, and scalar numbers. You can use this class to couple NekRS to MOOSE for:
Boundary CHT, by passing heat fluxes and wall temperatures
Volume coupling via temperature and heat source feedback (such as for coupling to neutronics)
Fluid-structure interaction, by passing wall displacements and stresses
Systems-level coupling, by reading and writing scalar numbers representing boundary conditions
Extracting the NekRS solution for postprocessing or one-way coupling in MOOSE, such as to - Query the solution, evaluate heat balances and pressure drops, or evaluate solution convergence - Providing one-way coupling to other MOOSE applications, such as for transporting scalars based on NekRS's velocity solution or for projecting NekRS turbulent viscosity closure terms onto another MOOSE application's mesh - Project the NekRS solution onto other discretization schemes, such as a subchannel discretization, or onto other MOOSE applications, such as for providing closures - Automatically convert nondimensional NekRS solutions into dimensional form - Because the MOOSE framework supports many different output formats, obtain a representation of the NekRS solution in Exodus, VTK, CSV, and other formats.
All of the above options can be combined together in a flexible, modular system.
This class must be used in conjunction with two other classes in Cardinal:
NekRSMesh, which builds a mirror of the NekRS mesh in a MOOSE format so that all the usual Transfers understand how to send data into/out of NekRS. The settings on NekRSMesh also determine which coupling types (of those listed above) are available.
NekTimeStepper, which allows NekRS to control its own time stepping.
Therefore, we recommend first reading the documentation for the above classes before proceeding here.
The smallest possible MOOSE-wrapped input file that can be used to run NekRS is shown below. casename is the prefix describing the NekRS input files, i.e. this parameter would be casename = 'fluid' if the NekRS input files are fluid.re2, fluid.par, fluid.udf, and fluid.oudf.
Listing 1: Smallest possible NekRS wrapped input file.
[Problem<<<{"href": "../../syntax/Problem/index.html"}>>>]
type = NekRSProblem
casename<<<{"description": "Case name for the NekRS input files; this is <case> in <case>.par, <case>.udf, <case>.oudf, and <case>.re2."}>>> = 'fluid'
[]
[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
type = NekRSMesh
boundary = '1 2'
volume = true
[]
[Executioner<<<{"href": "../../syntax/Executioner/index.html"}>>>]
type = Transient
[TimeStepper<<<{"href": "../../syntax/Executioner/TimeStepper/index.html"}>>>]
type = NekTimeStepper
[]
[](doc/content/source/problems/smallest_input.i)The remainder of this page describes how NekRSProblem wraps NekRS as a MOOSE application.
Overall Calculation Methodology
NekRSProblem inherits from the ExternalProblem class. For each time step, the calculation proceeds according to the ExternalProblem::solve() function. Data gets sent into NekRS, NekRS runs a time step, and data gets extracted from NekRS. NekRSProblem mostly consists of defining the syncSolutions and externalSolve methods. Each of these functions is now described.
void
ExternalProblem::solve(const unsigned int)
{
TIME_SECTION("solve", 1, "Solving", false)
syncSolutions(Direction::TO_EXTERNAL_APP);
externalSolve();
syncSolutions(Direction::FROM_EXTERNAL_APP);
}
(contrib/moose/framework/src/problems/ExternalProblem.C)External Solve
The actual solve of a timestep by NekRS is peformed within the externalSolve method, which essentially copies NekRS's main() function into MOOSE.
nekrs::runStep(time, dt, time_step_index);
nekrs::ocopyToNek(time + dt, time_step_index);
nekrs::udfExecuteStep(time + dt, time_step_index, is_output_step);
if (is_output_step) nekrs::outfld(time + dt);These four functions are defined in the NekRS source code, and perform the following:
Run a single time step
Copy the device-side solution to the host (so that it can be accessed by MOOSE via AuxVariables, Postprocessors, UserObjects, etc.)
Execute a user-defined function in NekRS,
UDF_ExecuteStep, for Nek-style postprocessing (optional)Write a NekRS output file
Because externalSolve is wrapped inside two syncSolutions calls, this means that for every NekRS time step, data is sent to and from NekRS, even if NekRS runs with a smaller time step than the MOOSE application to which it is coupled (i.e. if the data going into NekRS hasn't changed since the last time it was sent to NekRS). A means by which to reduce some of these (technically) unnecessary data transfers is described in Reducing CPU/GPU Data Transfers .
Transfers to NekRS
In the TO_EXTERNAL_APP data transfer, FieldTransfers and ScalarTransfers read from auxvariables and postprocessors and write data into the NekRS internal data space. Please click on the links to learn more.
FieldTransfers: passes field data (values defined throughout the nodal points on a mesh) between NekRS and MOOSE
ScalarTransfers: passes scalar data (single values or postprocessors) between NekRS and MOOSE
Transfer from NekRS
In the FROM_EXTERNAL_APP data transfer, FieldTransfers and ScalarTransfers read from NekRS's internal data space into auxvariables and postprocessors. Please click on the links to learn more.
FieldTransfers: passes field data (values defined throughout the nodal points on a mesh) between NekRS and MOOSE
ScalarTransfers: passes scalar data (single values or postprocessors) between NekRS and MOOSE
Nondimensional Solution
NekRS is most often solved in nondimensional form, such that all solution variables are of order unity by normalizing by problem-specific characteristic scales. However, most other MOOSE applications use dimensional units. When transferring field data to/from NekRS or when postprocessing the NekRS solution, it is important for the NekRS solution to match the dimensional solution of the coupled MOOSE application. For physical intuition, it is also often helpful in many cases to visualize and interpret a NekRS solution in dimensional form. Cardinal automatically handles conversions between dimensional and non-dimensional form if you add a Dimensionalize sub-block. Please consult the documentation for Dimensionalize for more information.
Outputting the Scratch Array
This class allows you to write slots in the nrs->usrwrk scratch space array to NekRS field files. This can be useful for viewing the data sent from MOOSE to NekRS on the actual spectral mesh where they are ultimately used. This feature can also be used to write field files for other quantities in the scratch space, such as a wall distance computation from the Nek5000 backend. To write the scratch space to a field file, set usrwrk_output to an array with each "slot" in the nrs->usrwrk array that you want to write. Then, specify a filename prefix to use to name each field file.
In the example below, the first two "slots" in the nrs->usrwrk array will be written to field files on the same interval that NekRS writes its usual field files. These files will be named aaabrick0.f00001, etc. and cccbrick0.f00001, etc. Based on limitations in how NekRS writes its files, the fields written to these files will all be named temperature when visualized.
[Problem<<<{"href": "../../syntax/Problem/index.html"}>>>]
type = NekRSProblem
casename<<<{"description": "Case name for the NekRS input files; this is <case> in <case>.par, <case>.udf, <case>.oudf, and <case>.re2."}>>> = 'brick'
usrwrk_output = '0 1'
usrwrk_output_prefix = 'aaa ccc'
n_usrwrk_slots<<<{"description": "Number of slots to allocate in nrs->usrwrk to hold fields either related to coupling (which will be populated by Cardinal), or other custom usages, such as a distance-to-wall calculation"}>>> = 2
[](test/tests/nek_file_output/usrwrk/nek.i)Reducing CPU/GPU Data Transfers
As shown in External Solve , for every NekRS time step, data is passed in/out of NekRS. If NekRS is run as a sub-application to a master application, and sub-cycling is used, a lot of these Central Processing Unit (CPU)/Graphics Processing Unit (GPU) data transfers can be omitted.
First, let's explain what MOOSE does in the usual master/sub coupling scheme when subcycling = true using a CHT as an example. Suppose you have a master application with a time step size of 1 second, and run NekRS as a sub-application with a time step size of 0.4 seconds that executes at the end of the master application time step. The calculation procedure involves:
Solve the master application from to seconds.
Transfer an auxvariable representing flux (and a postprocessor representing its integral) from the master application to the NekRS sub-application) at .
Read from the auxvariable and write into the
nrs->usrwrkarray using a NekBoundaryFlux object. Normalize the flux and then copy it from host to device.Run a NekRS time step from to seconds.
Copy the temperature from device to host and then interpolate NekRS's temperature from NekRS's GLL points to the
NekRSMeshusing a NekFieldVariable.Even though the flux data hasn't changed, and even though the temperature data isn't going to be used by the master application yet,
ExternalProblem::solve()performs data transfers in/out of NekRS for every NekRS time step. Regardless of whether that data has changed or is needed yet by MOOSE, repeat steps 3-5 two times - once for a time step size of 0.4 seconds, and again for a time step size of 0.2 seconds (for the NekRS sub-application to "catch up" to the master application's overall time step length of 1 second.
If NekRS is run with a time step times smaller than its master application, this structuring of ExternalProblem represents unnecessary interpolations and CPU to GPU copies of the flux, and unnecessary GPU to CPU copies of the temperature and interpolations. NekRSProblem contains features that allow you to turn off these extra transfers. However, MOOSE's MultiApp system is designed in such a way that sub-applications know very little about their master applications (and for good reason - such a design is what enables such flexible multiphysics couplings). So, the only way that NekRS can definitively know that a data transfer from a master application is the first data transfer after the flux data has been updated, we monitor the value of a dummy postprocessor sent by the master application to NekRS. In other words, we define a postprocessor in the master application that just has a value of 1.
[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
[synchronize]
type = Receiver<<<{"description": "Reports the value stored in this processor, which is usually filled in by another object. The Receiver does not compute its own value.", "href": "../postprocessors/Receiver.html"}>>>
default<<<{"description": "The default value"}>>> = 1
[]
[](tutorials/sfr_7pin/solid.i)We define this postprocessor as a Receiver postprocessor, but we won't actually use it to receive anything from other applications. Instead, we set the default value to 1 in order to indicate "true". Then, at the same time that we send new flux values to NekRS, we also pass this postprocessor.
[Transfers<<<{"href": "../../syntax/Transfers/index.html"}>>>]
[synchronize_in]
type = MultiAppPostprocessorTransfer<<<{"description": "Transfers postprocessor data between the master application and sub-application(s).", "href": "../transfers/MultiAppPostprocessorTransfer.html"}>>>
to_postprocessor<<<{"description": "The name of the Postprocessor in the MultiApp to transfer the value to. This should most likely be a Reporter Postprocessor."}>>> = transfer_in
from_postprocessor<<<{"description": "The name of the Postprocessor in the Master to transfer the value from."}>>> = synchronize
to_multi_app<<<{"description": "The name of the MultiApp to transfer the data to"}>>> = nek
[]
[](tutorials/sfr_7pin/solid.i)We then receive this postprocessor in the sub-application. This basically means that, when the flux data is new, the NekRS sub-application will receive a value of "true" from the master-application (through the lens of this postprocessor), and send the data into NekRS. For data transfer out of NekRS, we determine when the temperatue data is ready for use by MOOSE by monitoring how close the sub-application is to the synchronization time to the master application.
All that is required to use this reduced communication feature are to define the dummy postprocessor in the master application, and transfer it to the sub-application. Then, set the following options in NekRSProblem, which here are shown minimizing the communication going in and out of NekRS.
[Problem<<<{"href": "../../syntax/Problem/index.html"}>>>]
type = NekRSProblem
casename<<<{"description": "Case name for the NekRS input files; this is <case> in <case>.par, <case>.udf, <case>.oudf, and <case>.re2."}>>> = 'sfr_7pin'
synchronization_interval = parent_app
n_usrwrk_slots<<<{"description": "Number of slots to allocate in nrs->usrwrk to hold fields either related to coupling (which will be populated by Cardinal), or other custom usages, such as a distance-to-wall calculation"}>>> = 1
[FieldTransfers<<<{"href": "../../syntax/Problem/FieldTransfers/index.html"}>>>]
[heat_flux]
type = NekBoundaryFlux<<<{"description": "Reads/writes boundary flux data between NekRS and MOOSE."}>>>
direction<<<{"description": "Direction in which to send data"}>>> = to_nek
usrwrk_slot<<<{"description": "When 'direction = to_nek', the slot(s) in the usrwrk array to write the incoming data; provide one entry for each quantity being passed"}>>> = 0
[]
[temperature]
type = NekFieldVariable<<<{"description": "Reads/writes volumetric field data between NekRS and MOOSE."}>>>
direction<<<{"description": "Direction in which to send data"}>>> = from_nek
[]
[]
[](tutorials/sfr_7pin/nek.i)When the interpolate_transfers = true option is used by the TransientMultiApp, MOOSE interpolates the heat flux that gets sent to NekRS for each NekRS time step based on the master application time steps bounding the NekRS step. That is, if MOOSE computes the heat flux at two successive time steps to be and , and NekRS is being advanced to a sub-cycled step , then if interpolate_transfers = true, the avg_flux variable actually is a linear interpolation of the two flux values at the end points of the master application's solve interval, or . Using this "minimal transfer" feature will ignore the fact that MOOSE is interpolating the heat flux.
Input Parameters
- blockANY_BLOCK_ID List of subdomains for kernel coverage and material coverage checks. Setting this parameter is equivalent to setting 'kernel_coverage_block_list' and 'material_coverage_block_list' as well as using 'ONLY_LIST' as the coverage check mode.
Default:ANY_BLOCK_ID
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:List of subdomains for kernel coverage and material coverage checks. Setting this parameter is equivalent to setting 'kernel_coverage_block_list' and 'material_coverage_block_list' as well as using 'ONLY_LIST' as the coverage check mode.
- constant_interval1Constant interval (in units of number of time steps) with which to synchronize the NekRS solution
Default:1
C++ Type:unsigned int
Controllable:No
Description:Constant interval (in units of number of time steps) with which to synchronize the NekRS solution
- disable_fld_file_outputFalseWhether to turn off all NekRS field file output writing
Default:False
C++ Type:bool
Controllable:No
Description:Whether to turn off all NekRS field file output writing
- n_usrwrk_slots0Number of slots to allocate in nrs->usrwrk to hold fields either related to coupling (which will be populated by Cardinal), or other custom usages, such as a distance-to-wall calculation (which will be populated by the user from the case files)
Default:0
C++ Type:unsigned int
Controllable:No
Description:Number of slots to allocate in nrs->usrwrk to hold fields either related to coupling (which will be populated by Cardinal), or other custom usages, such as a distance-to-wall calculation (which will be populated by the user from the case files)
- regard_general_exceptions_as_errorsFalseIf we catch an exception during residual/Jacobian evaluaton for which we don't have specific handling, immediately error instead of allowing the time step to be cut
Default:False
C++ Type:bool
Controllable:No
Description:If we catch an exception during residual/Jacobian evaluaton for which we don't have specific handling, immediately error instead of allowing the time step to be cut
- skip_final_field_fileFalseBy default, we write a NekRS field file on the last time step; set this to true to disable
Default:False
C++ Type:bool
Controllable:No
Description:By default, we write a NekRS field file on the last time step; set this to true to disable
- solveTrueWhether or not to actually solve the Nonlinear system. This is handy in the case that all you want to do is execute AuxKernels, Transfers, etc. without actually solving anything
Default:True
C++ Type:bool
Controllable:Yes
Description:Whether or not to actually solve the Nonlinear system. This is handy in the case that all you want to do is execute AuxKernels, Transfers, etc. without actually solving anything
- synchronization_intervalconstantWhen to synchronize the NekRS solution with the mesh mirror. By default, the NekRS solution is mapped to/receives data from the mesh mirror for every time step.
Default:constant
C++ Type:MooseEnum
Options:constant, parent_app
Controllable:No
Description:When to synchronize the NekRS solution with the mesh mirror. By default, the NekRS solution is mapped to/receives data from the mesh mirror for every time step.
- usrwrk_outputUsrwrk slot(s) to output to NekRS field files; this can be used for viewing the quantities passed from MOOSE to NekRS after interpolation to the CFD mesh. Can also be used for any slots in usrwrk that are written by the user, but unused for coupling.
C++ Type:std::vector<unsigned int>
Controllable:No
Description:Usrwrk slot(s) to output to NekRS field files; this can be used for viewing the quantities passed from MOOSE to NekRS after interpolation to the CFD mesh. Can also be used for any slots in usrwrk that are written by the user, but unused for coupling.
- usrwrk_output_prefixString prefix to use for naming the field file(s); only the first three characters are used in the name based on limitations in NekRS
C++ Type:std::vector<std::string>
Controllable:No
Description:String prefix to use for naming the field file(s); only the first three characters are used in the name based on limitations in NekRS
- write_fld_filesFalseWhether to write NekRS field file output from Cardinal. If true, this will disable any output writing by NekRS itself, and instead produce output files with names a01...a99pin, b01...b99pin, etc.
Default:False
C++ Type:bool
Controllable:No
Description:Whether to write NekRS field file output from Cardinal. If true, this will disable any output writing by NekRS itself, and instead produce output files with names a01...a99pin, b01...b99pin, etc.
Optional Parameters
- allow_initial_conditions_with_restartFalseTrue to allow the user to specify initial conditions when restarting. Initial conditions can override any restarted field
Default:False
C++ Type:bool
Controllable:No
Description:True to allow the user to specify initial conditions when restarting. Initial conditions can override any restarted field
- restart_file_baseFile base name used for restart (e.g.
/ or /LATEST to grab the latest file available) C++ Type:FileNameNoExtension
Controllable:No
Description:File base name used for restart (e.g.
/ or /LATEST to grab the latest file available)
Restart Parameters
- 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.
- default_ghostingFalseWhether or not to use libMesh's default amount of algebraic and geometric ghosting
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to use libMesh's default amount of algebraic and geometric ghosting
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.
Advanced Parameters
- kernel_coverage_block_listList of subdomains for kernel coverage check. The meaning of this list is controlled by the parameter 'kernel_coverage_check' (whether this is the list of subdomains to be checked, not to be checked or not taken into account).
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:List of subdomains for kernel coverage check. The meaning of this list is controlled by the parameter 'kernel_coverage_check' (whether this is the list of subdomains to be checked, not to be checked or not taken into account).
- material_coverage_block_listList of subdomains for material coverage check. The meaning of this list is controlled by the parameter 'material_coverage_check' (whether this is the list of subdomains to be checked, not to be checked or not taken into account).
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:List of subdomains for material coverage check. The meaning of this list is controlled by the parameter 'material_coverage_check' (whether this is the list of subdomains to be checked, not to be checked or not taken into account).
- material_coverage_checkTRUEControls, if and how a material subdomain coverage check is performed. With 'TRUE' or 'ON' all subdomains are checked (the default). Setting 'FALSE' or 'OFF' will disable the check for all subdomains. To exclude a predefined set of subdomains 'SKIP_LIST' is to be used, while the subdomains to skip are to be defined in the parameter 'material_coverage_block_list'. To limit the check to a list of subdomains, 'ONLY_LIST' is to be used (again, using the parameter 'material_coverage_block_list').
Default:TRUE
C++ Type:MooseEnum
Options:FALSE, TRUE, OFF, ON, SKIP_LIST, ONLY_LIST
Controllable:No
Description:Controls, if and how a material subdomain coverage check is performed. With 'TRUE' or 'ON' all subdomains are checked (the default). Setting 'FALSE' or 'OFF' will disable the check for all subdomains. To exclude a predefined set of subdomains 'SKIP_LIST' is to be used, while the subdomains to skip are to be defined in the parameter 'material_coverage_block_list'. To limit the check to a list of subdomains, 'ONLY_LIST' is to be used (again, using the parameter 'material_coverage_block_list').
Simulation Checks Parameters
- not_zeroed_tag_vectorsExtra vector tags which the sytem will not zero when other vector tags are zeroed. The outer index is for which nonlinear system the extra tag vectors should be added for
C++ Type:std::vector<std::vector<TagName>>
Controllable:No
Description:Extra vector tags which the sytem will not zero when other vector tags are zeroed. The outer index is for which nonlinear system the extra tag vectors should be added for
Contribution To Tagged Field Data Parameters
- parallel_barrier_messagingFalseDisplays messaging from parallel barrier notifications when executing or transferring to/from Multiapps (default: false)
Default:False
C++ Type:bool
Controllable:No
Description:Displays messaging from parallel barrier notifications when executing or transferring to/from Multiapps (default: false)
- verbose_multiappsFalseSet to True to enable verbose screen printing related to MultiApps
Default:False
C++ Type:bool
Controllable:No
Description:Set to True to enable verbose screen printing related to MultiApps
- verbose_restoreFalseSet to True to enable verbose screen printing related to solution restoration
Default:False
C++ Type:bool
Controllable:No
Description:Set to True to enable verbose screen printing related to solution restoration
- verbose_setupfalseSet to 'true' to have the problem report on any object created. Set to 'extra' to also display all parameters.
Default:false
C++ Type:MooseEnum
Options:false, true, extra
Controllable:No
Description:Set to 'true' to have the problem report on any object created. Set to 'extra' to also display all parameters.
Verbosity Parameters
- restore_original_nonzero_patternFalseWhether we should reset matrix memory for every Jacobian evaluation. This option is useful if the sparsity pattern is constantly changing and you are using hash table assembly or if you wish to continually restore the matrix to the originally preallocated sparsity pattern computed by relationship managers.
Default:False
C++ Type:bool
Controllable:No
Description:Whether we should reset matrix memory for every Jacobian evaluation. This option is useful if the sparsity pattern is constantly changing and you are using hash table assembly or if you wish to continually restore the matrix to the originally preallocated sparsity pattern computed by relationship managers.
- use_hash_table_matrix_assemblyFalseWhether to assemble matrices using hash tables instead of preallocating matrix memory. This can be a good option if the sparsity pattern changes throughout the course of the simulation.
Default:False
C++ Type:bool
Controllable:No
Description:Whether to assemble matrices using hash tables instead of preallocating matrix memory. This can be a good option if the sparsity pattern changes throughout the course of the simulation.
Nonlinear System(S) Parameters
- show_invalid_solution_consoleTrueSet to true to show the invalid solution occurance summary in console
Default:True
C++ Type:bool
Controllable:No
Description:Set to true to show the invalid solution occurance summary in console
Solution Validity Control Parameters
Input Files
- (test/tests/nek_errors/invalid_transfer_pp/nek.i)
- (test/tests/userobjects/hexagonal_gap_layered/nek_axial.i)
- (test/tests/cht/pincell_p_v/nek.i)
- (test/tests/transfers/nek_temperature/nek.i)
- (test/tests/cht/pebble/nek.i)
- (test/tests/deformation/vol-areas/nek.i)
- (test/tests/nek_errors/no_temp_solve/nek.i)
- (test/tests/postprocessors/nek_point_value/points.i)
- (test/tests/conduction/identical_interface/cube/nek.i)
- (test/tests/nek_errors/invalid_settings/executioner.i)
- (test/tests/userobjects/volume/nondimensional/nek.i)
- (test/tests/deformation/simple-cube/nek.i)
- (test/tests/nek_errors/no_temp_var/nek.i)
- (test/tests/postprocessors/nek_side_integral/nek.i)
- (test/tests/conduction/nonidentical_interface/cylinders/nek_mini.i)
- (test/tests/userobjects/subchannel_layered/1d.i)
- (test/tests/conduction/nonidentical_volume/nondimensional/nek.i)
- (test/tests/postprocessors/nek_side_extrema/nek.i)
- (test/tests/postprocessors/nek_point_value/unknown.i)
- (test/tests/userobjects/subchannel_layered/wrong_type.i)
- (tutorials/load_from_exodus/nek.i)
- (test/tests/userobjects/radial_layered/1d.i)
- (test/tests/nek_mesh/second_order/nek.i)
- (test/tests/nek_mesh/exact/exact_volume.i)
- (test/tests/postprocessors/nek_volume_average/nek.i)
- (test/tests/conduction/zero_flux/nek_disjoint.i)
- (test/tests/postprocessors/dimensionless_numbers/dimensional/ranks.i)
- (test/tests/conduction/boundary_and_volume/prism/nek_exact.i)
- (test/tests/conduction/nonidentical_interface/cylinders/nek.i)
- (test/tests/nek_mesh/first_order/nek.i)
- (test/tests/userobjects/hexagonal_gap_layered/nek.i)
- (test/tests/postprocessors/nek_pressure_surface_force/nek.i)
- (test/tests/transfers/nek_temperature/volume/nek.i)
- (test/tests/conduction/nonidentical_volume/cylinder/nek.i)
- (test/tests/nek_temp/second_order/nek_volume.i)
- (tutorials/subchannel/nek.i)
- (test/tests/nek_mesh/sidesets/cube/nek_volume.i)
- (test/tests/userobjects/volume/dimensional/nek.i)
- (test/tests/nek_file_output/nek_as_master_even/nek.i)
- (test/tests/multiple_nek_apps/two_channels/nek.i)
- (test/tests/nek_errors/invalid_settings/nek_bc.i)
- (tutorials/pincell_multiphysics/nek.i)
- (test/tests/userobjects/interval/nek_synchronization.i)
- (doc/content/source/problems/smallest_input.i)
- (tutorials/nek_stochastic/nek.i)
- (test/tests/nek_stochastic/nek_multi.i)
- (test/tests/conduction/identical_volume/cube/nek.i)
- (test/tests/userobjects/hexagonal_gap_layered/user_component.i)
- (test/tests/postprocessors/nek_volume_integral/nondimensional.i)
- (test/tests/nek_mesh/sidesets/pyramid/nek_volume.i)
- (tutorials/fhr_reflector/cht/nek.i)
- (test/tests/userobjects/subchannel_layered/pin_1d.i)
- (test/tests/postprocessors/nek_heat_flux_integral/nek.i)
- (test/tests/deformation/nek_standalone/nek_boundary.i)
- (test/tests/nek_output/bad_name.i)
- (test/tests/nek_temp/second_order/nek.i)
- (test/tests/deformation/nek_standalone/nek.i)
- (test/tests/userobjects/subchannel_layered/nek.i)
- (test/tests/postprocessors/dimensionless_numbers/nondimensional/nek.i)
- (test/tests/postprocessors/nek_usrwrk_boundary_integral/nek.i)
- (test/tests/userobjects/layered_layered/nek.i)
- (test/tests/userobjects/hexagonal_gap_layered/type_error.i)
- (test/tests/nek_standalone/start_time/force_start.i)
- (test/tests/postprocessors/nek_weighted_side_integral/nek.i)
- (test/tests/nek_standalone/ethier/nek.i)
- (test/tests/nek_file_output/nek_as_sub/nek.i)
- (test/tests/nek_errors/invalid_settings/timestepper.i)
- (test/tests/postprocessors/dimensionless_numbers/dimensional/nek.i)
- (tutorials/standalone/nek.i)
- (test/tests/conduction/identical_interface/pyramid/nek.i)
- (test/tests/cht/sfr_pincell/nek_vpp.i)
- (test/tests/nek_temp/exact/exact.i)
- (tutorials/msfr/nek.i)
- (test/tests/auxkernels/heat_transfer_coefficient/nek.i)
- (test/tests/nek_errors/deformation/user/nek.i)
- (test/tests/nek_errors/invalid_settings/boundary_id.i)
- (test/tests/conduction/zero_flux/nek.i)
- (test/tests/nek_temp/exact/exact_volume.i)
- (test/tests/userobjects/subchannel_layered/user_component.i)
- (test/tests/userobjects/side/nondimensional/nek.i)
- (test/tests/nek_errors/invalid_settings/mesh.i)
- (test/tests/nek_standalone/adaptive_dt/nek_nondim.i)
- (test/tests/nek_stochastic/device/nek_multi.i)
- (test/tests/griffin_coupling/nek.i)
- (test/tests/nek_mesh/second_order/nek_volume.i)
- (test/tests/userobjects/sideset_layered/z_bins_by_centroid.i)
- (test/tests/nek_errors/invalid_field/nonlinear.i)
- (tutorials/pebble_cht/nek.i)
- (test/tests/userobjects/layered_layered/duplicate_directions.i)
- (test/tests/conduction/nonidentical_interface/cylinders/nek_exact.i)
- (test/tests/userobjects/subchannel_layered/order_error.i)
- (test/tests/nek_errors/no_temp_solve/source.i)
- (test/tests/nek_file_output/nek_as_sub_even/nek.i)
- (test/tests/cht/pebble/shift/nek.i)
- (tutorials/sfr_7pin/nek_vpp.i)
- (test/tests/postprocessors/nek_weighted_side_average/nek.i)
- (test/tests/conduction/reverse_cht/nek.i)
- (test/tests/userobjects/hexagonal_gap_layered/normals/nek_axial.i)
- (test/tests/nek_output/velocity.i)
- (test/tests/nek_errors/no_temp_var/source.i)
- (test/tests/nek_standalone/ktauChannel/nek.i)
- (test/tests/nek_errors/no_occa_source_kernel/nek.i)
- (test/tests/nek_mesh/sidesets/pyramid/exact_volume.i)
- (test/tests/nek_stochastic/quiet_init/nek_multi.i)
- (test/tests/nek_standalone/from_restart/nek.i)
- (test/tests/userobjects/sideset_layered/invalid_boundary.i)
- (test/tests/nek_errors/invalid_bid_postprocessor/nek.i)
- (test/tests/nek_errors/usrwrk_transfers/source.i)
- (test/tests/auxkernels/nek_spatial_bin_component_aux/invalid_field.i)
- (test/tests/nek_errors/invalid_field/nek.i)
- (test/tests/nek_errors/mpi_setup_multiple_inputs/nek.i)
- (test/tests/nek_output/nek.i)
- (test/tests/nek_stochastic/shift/nek.i)
- (test/tests/nek_errors/used_scratch/nek.i)
- (test/tests/nek_mesh/exact/exact.i)
- (test/tests/nek_mesh/first_order/nek_volume.i)
- (test/tests/userobjects/subchannel_layered/duplicate_directions.i)
- (tutorials/fhr_reflector/conduction/nek.i)
- (test/tests/postprocessors/nek_volume_extrema/nek.i)
- (test/tests/conduction/boundary_and_volume/prism/nek.i)
- (tutorials/restart_nek_and_moose/read_from_checkpoints/nek.i)
- (test/tests/deformation/mesh-velocity-areas/nek.i)
- (test/tests/nek_file_output/avg_plugin/nek.i)
- (test/tests/nek_standalone/lowMach/nek_boundary.i)
- (test/tests/nek_errors/invalid_field/auxvar.i)
- (tutorials/gas_compact_multiphysics/nek.i)
- (test/tests/nek_temp/first_order/nek_volume.i)
- (test/tests/nek_temp/first_order/nek.i)
- (test/tests/postprocessors/nek_volume_integral/nek.i)
- (test/tests/postprocessors/nek_viscous_surface_force/nek.i)
- (test/tests/postprocessors/nek_point_value/points_nondimensional.i)
- (tutorials/sfr_7pin/nek.i)
- (test/tests/userobjects/sideset_layered/z_bins.i)
- (test/tests/nek_errors/usrwrk_transfers/scalar.i)
- (test/tests/userobjects/layered_layered/3d.i)
- (test/tests/userobjects/interval/nek.i)
- (test/tests/userobjects/gap/nondimensional/nek.i)
- (test/tests/userobjects/radial_layered/2d.i)
- (test/tests/nek_errors/invalid_settings/mesh_scaling.i)
- (test/tests/postprocessors/nek_volume_average/nondimensional.i)
- (tutorials/sfr_7pin/nek_fluxflux.i)
- (test/tests/transfers/nek_scalar_value/nek.i)
- (test/tests/transfers/nek_flux/nek.i)
- (test/tests/nek_standalone/conj_ht/nek.i)
- (test/tests/postprocessors/nek_side_average/nek.i)
- (test/tests/nek_errors/usrwrk_transfers/flux.i)
- (test/tests/postprocessors/nek_point_value/usrwrk_units.i)
- (test/tests/multiple_nek_apps/subdirectory/nek.i)
- (test/tests/cht/sfr_pincell/nek_isolated.i)
- (test/tests/cht/sfr_pincell/nek.i)
- (test/tests/conduction/nonidentical_volume/cylinder/nek_exact.i)
- (test/tests/cht/nondimensional/nek_exact.i)
- (test/tests/nek_file_output/usrwrk/nek.i)
- (test/tests/nek_errors/deformation/nek.i)
- (test/tests/conduction/zero_flux/mismatch_nek.i)
- (test/tests/nek_standalone/channel/nek.i)
- (tutorials/pebble_67/nek.i)
- (test/tests/userobjects/subchannel_layered/type_error.i)
- (test/tests/nek_mesh/sidesets/cube/exact_volume.i)
- (test/tests/transfers/nek_postprocessor_value/nek.i)
- (test/tests/nek_stochastic/read/read.i)
- (test/tests/nek_file_output/nek_as_master/nek.i)
- (test/tests/userobjects/gap/dimensional/nek.i)
- (tutorials/gas_compact_cht/nek.i)
- (test/tests/cht/nondimensional/nek.i)
- (test/tests/userobjects/side/dimensional/nek.i)
- (test/tests/conduction/zero_flux/nek_vpp.i)
- (test/tests/nek_errors/usrwrk_transfers/nek.i)
- (test/tests/cht/multi_cht/nek.i)
- (test/tests/sockeye_coupling/sockeye_sub/nek.i)
- (test/tests/postprocessors/nek_pressure_surface_force/nek_nondimensional.i)
- (test/tests/userobjects/layered_layered/1d.i)
- (test/tests/nek_standalone/adaptive_dt/nek.i)
- (tutorials/restart_nek_and_moose/create_checkpoints/nek.i)
- (test/tests/nek_standalone/lowMach/nek.i)
- (test/tests/userobjects/hexagonal_gap_layered/normals/nek.i)
- (test/tests/userobjects/sideset_layered/side_average.i)
- (test/tests/nek_output/nek_fld.i)
(doc/content/source/problems/smallest_input.i)
[Problem]
type = NekRSProblem
casename = 'fluid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2'
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(contrib/moose/framework/src/problems/ExternalProblem.C)
// This file is part of the MOOSE framework
// https://mooseframework.inl.gov
//
// 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
// MOOSE includes
#include "ExternalProblem.h"
#include "NonlinearSystem.h"
#include "AuxiliarySystem.h"
InputParameters
ExternalProblem::validParams()
{
InputParameters params = FEProblemBase::validParams();
params.set<bool>("skip_nl_system_check") = true;
// there is no nonlinear system (we set it as empty in the constructor)
params.suppressParameter<bool>("ignore_zeros_in_jacobian");
params.suppressParameter<MooseEnum>("kernel_coverage_check");
params.suppressParameter<std::vector<NonlinearSystemName>>("nl_sys_names");
params.suppressParameter<bool>("previous_nl_solution_required");
params.suppressParameter<bool>("skip_nl_system_check");
params.suppressParameter<bool>("use_nonlinear");
params.addClassDescription("Problem extension point for wrapping external applications");
return params;
}
ExternalProblem::ExternalProblem(const InputParameters & parameters) : FEProblemBase(parameters)
{
/**
* Ideally the nonlinear system should not exist since we won't ever use it or call solve on it.
* However, MOOSE currently expects it to exist in several locations throughout the framework.
* Luckily, it can just be empty (no variables).
*/
if (_num_nl_sys)
{
_nl[0] = std::make_shared<NonlinearSystem>(*this, "nl0");
_solver_systems[0] = std::dynamic_pointer_cast<SolverSystem>(_nl[0]);
}
_aux = std::make_shared<AuxiliarySystem>(*this, "aux0");
/**
* We still need to create Assembly objects to hold the data structures for working with Aux
* Variables, which will be used in the external problem.
*/
newAssemblyArray(_solver_systems);
// Create extra vectors and matrices if any
createTagVectors();
// Create extra solution vectors if any
createTagSolutions();
}
void
ExternalProblem::solve(const unsigned int)
{
TIME_SECTION("solve", 1, "Solving", false)
syncSolutions(Direction::TO_EXTERNAL_APP);
externalSolve();
syncSolutions(Direction::FROM_EXTERNAL_APP);
}
(test/tests/nek_file_output/usrwrk/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'brick'
usrwrk_output = '0 1'
usrwrk_output_prefix = 'aaa ccc'
n_usrwrk_slots = 2
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(tutorials/sfr_7pin/solid.i)
d_pellet = 0.603e-2 # pellet diameter (m)
d_pin = 8.0e-3 # pin (clad) diameter (m)
t_clad = 0.52e-3 # clad thickness (m)
L = 20.32e-2 # height (m)
bundle_pitch = 0.02625 # flat-to-flat distance inside the duct (m)
duct_thickness = 0.004 # duct thickness (m)
pin_power = 10e3 # bundle power (kW)
!include mesh.i
[Variables]
[T]
initial_condition = 500.0
[]
[]
[Kernels]
[diffusion]
type = HeatConduction
variable = T
[]
[source] # the "units" of a kernel in the heat equation are W/m^3, so we need to divide the power by the pellet volumes
type = BodyForce
variable = T
function = ${fparse pin_power / (pi * (d_pellet * d_pellet / 4.0) * L)}
block = '2 3'
[]
[]
[ThermalContact]
# This adds boundary conditions bewteen the fuel and the cladding, which represents
# the heat flux in both directions as
# q''= h * (T_1 - T_2)
# where h is a conductance that accounts for conduction through a material and
# radiation between two infinite parallel plate gray bodies.
[one_to_two]
type = GapHeatTransfer
variable = T
primary = '1'
secondary = '4'
# we will use a quadrature-based approach to find the gap width and cross-side temperature
quadrature = true
# emissivity of the fuel
emissivity_primary = 0.8
# emissivity of the clad
emissivity_secondary = 0.8
# thermal conductivity of the gap material
gap_conductivity = 60.0
# geometric terms related to the gap
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 0 ${L}'
[]
[]
[BCs]
[pin_and_duct]
type = MatchedValueBC
variable = T
v = nek_temp
boundary = '5 10'
[]
[outer]
type = ConvectiveHeatFluxBC
variable = T
T_infinity = 600
heat_transfer_coefficient = 1000
boundary = 'duct_outer'
[]
[]
[Materials]
[clad_and_duct]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '26'
block = '1 10'
[]
[pellet]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '23'
block = '2 3'
[]
[]
[Postprocessors]
[flux_integral] # evaluate the total heat flux for normalization
type = SideDiffusiveFluxIntegral
diffusivity = thermal_conductivity
variable = T
boundary = '5 10'
[]
[max_fuel_T]
type = NodalExtremeValue
variable = T
value_type = max
block = '2 3'
[]
[max_clad_T]
type = NodalExtremeValue
variable = T
value_type = max
block = '1'
[]
[max_duct_T]
type = NodalExtremeValue
variable = T
value_type = max
block = '10'
[]
[synchronize]
type = Receiver
default = 1
[]
[]
[MultiApps]
[nek]
type = TransientMultiApp
input_files = 'nek.i'
sub_cycling = true
execute_on = timestep_end
[]
[]
[Transfers]
[nek_temp] # grabs temperature from nekRS and stores it in nek_temp
type = MultiAppGeneralFieldNearestLocationTransfer
source_variable = temperature
from_multi_app = nek
variable = nek_temp
to_boundaries = '5 10'
[]
[flux] # sends heat flux in flux to nekRS
type = MultiAppGeneralFieldNearestLocationTransfer
source_variable = flux
to_multi_app = nek
variable = heat_flux
from_boundaries = '5 10'
[]
[flux_integral_to_nek] # sends the heat flux integral (for normalization) to nekRS
type = MultiAppPostprocessorTransfer
to_postprocessor = heat_flux_integral
from_postprocessor = flux_integral
to_multi_app = nek
[]
[synchronize_in]
type = MultiAppPostprocessorTransfer
to_postprocessor = transfer_in
from_postprocessor = synchronize
to_multi_app = nek
[]
[]
[AuxVariables]
[nek_temp]
initial_condition = 500.0
[]
[flux]
family = MONOMIAL
order = CONSTANT
block = '1 10'
[]
[]
[AuxKernels]
[flux]
type = DiffusionFluxAux
diffusion_variable = T
component = normal
diffusivity = thermal_conductivity
variable = flux
boundary = '5 10'
[]
[]
[Executioner]
type = Transient
dt = 5e-2
nl_abs_tol = 1e-5
nl_rel_tol = 1e-16
petsc_options_value = 'hypre boomeramg'
petsc_options_iname = '-pc_type -pc_hypre_type'
steady_state_detection = true
steady_state_tolerance = 1e-2
[]
[Outputs]
exodus = true
[]
(tutorials/sfr_7pin/solid.i)
d_pellet = 0.603e-2 # pellet diameter (m)
d_pin = 8.0e-3 # pin (clad) diameter (m)
t_clad = 0.52e-3 # clad thickness (m)
L = 20.32e-2 # height (m)
bundle_pitch = 0.02625 # flat-to-flat distance inside the duct (m)
duct_thickness = 0.004 # duct thickness (m)
pin_power = 10e3 # bundle power (kW)
!include mesh.i
[Variables]
[T]
initial_condition = 500.0
[]
[]
[Kernels]
[diffusion]
type = HeatConduction
variable = T
[]
[source] # the "units" of a kernel in the heat equation are W/m^3, so we need to divide the power by the pellet volumes
type = BodyForce
variable = T
function = ${fparse pin_power / (pi * (d_pellet * d_pellet / 4.0) * L)}
block = '2 3'
[]
[]
[ThermalContact]
# This adds boundary conditions bewteen the fuel and the cladding, which represents
# the heat flux in both directions as
# q''= h * (T_1 - T_2)
# where h is a conductance that accounts for conduction through a material and
# radiation between two infinite parallel plate gray bodies.
[one_to_two]
type = GapHeatTransfer
variable = T
primary = '1'
secondary = '4'
# we will use a quadrature-based approach to find the gap width and cross-side temperature
quadrature = true
# emissivity of the fuel
emissivity_primary = 0.8
# emissivity of the clad
emissivity_secondary = 0.8
# thermal conductivity of the gap material
gap_conductivity = 60.0
# geometric terms related to the gap
gap_geometry_type = CYLINDER
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 0 ${L}'
[]
[]
[BCs]
[pin_and_duct]
type = MatchedValueBC
variable = T
v = nek_temp
boundary = '5 10'
[]
[outer]
type = ConvectiveHeatFluxBC
variable = T
T_infinity = 600
heat_transfer_coefficient = 1000
boundary = 'duct_outer'
[]
[]
[Materials]
[clad_and_duct]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '26'
block = '1 10'
[]
[pellet]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity'
prop_values = '23'
block = '2 3'
[]
[]
[Postprocessors]
[flux_integral] # evaluate the total heat flux for normalization
type = SideDiffusiveFluxIntegral
diffusivity = thermal_conductivity
variable = T
boundary = '5 10'
[]
[max_fuel_T]
type = NodalExtremeValue
variable = T
value_type = max
block = '2 3'
[]
[max_clad_T]
type = NodalExtremeValue
variable = T
value_type = max
block = '1'
[]
[max_duct_T]
type = NodalExtremeValue
variable = T
value_type = max
block = '10'
[]
[synchronize]
type = Receiver
default = 1
[]
[]
[MultiApps]
[nek]
type = TransientMultiApp
input_files = 'nek.i'
sub_cycling = true
execute_on = timestep_end
[]
[]
[Transfers]
[nek_temp] # grabs temperature from nekRS and stores it in nek_temp
type = MultiAppGeneralFieldNearestLocationTransfer
source_variable = temperature
from_multi_app = nek
variable = nek_temp
to_boundaries = '5 10'
[]
[flux] # sends heat flux in flux to nekRS
type = MultiAppGeneralFieldNearestLocationTransfer
source_variable = flux
to_multi_app = nek
variable = heat_flux
from_boundaries = '5 10'
[]
[flux_integral_to_nek] # sends the heat flux integral (for normalization) to nekRS
type = MultiAppPostprocessorTransfer
to_postprocessor = heat_flux_integral
from_postprocessor = flux_integral
to_multi_app = nek
[]
[synchronize_in]
type = MultiAppPostprocessorTransfer
to_postprocessor = transfer_in
from_postprocessor = synchronize
to_multi_app = nek
[]
[]
[AuxVariables]
[nek_temp]
initial_condition = 500.0
[]
[flux]
family = MONOMIAL
order = CONSTANT
block = '1 10'
[]
[]
[AuxKernels]
[flux]
type = DiffusionFluxAux
diffusion_variable = T
component = normal
diffusivity = thermal_conductivity
variable = flux
boundary = '5 10'
[]
[]
[Executioner]
type = Transient
dt = 5e-2
nl_abs_tol = 1e-5
nl_rel_tol = 1e-16
petsc_options_value = 'hypre boomeramg'
petsc_options_iname = '-pc_type -pc_hypre_type'
steady_state_detection = true
steady_state_tolerance = 1e-2
[]
[Outputs]
exodus = true
[]
(tutorials/sfr_7pin/nek.i)
interval = 100
[Mesh]
type = NekRSMesh
boundary = '1 4'
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
synchronization_interval = parent_app
n_usrwrk_slots = 1
[FieldTransfers]
[heat_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[temperature]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
# this will only display the NekRS output every N time steps; postprocessors
# are still computed on every step, just not output to the console
time_step_interval = ${interval}
[]
[Postprocessors]
[pin_flux_in_nek]
type = NekHeatFluxIntegral
boundary = '1'
[]
[duct_flux_in_nek]
type = NekHeatFluxIntegral
boundary = '4'
[]
[max_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[]
(test/tests/nek_errors/invalid_transfer_pp/nek.i)
[Problem]
type = NekRSProblem
synchronization_interval = parent_app
casename = 'cube'
[]
[Mesh]
type = NekRSMesh
boundary = '4'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/userobjects/hexagonal_gap_layered/nek_axial.i)
gap_thickness = ${fparse 0.1 * 7.646e-3}
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[FieldTransfers]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[]
[]
[AuxVariables]
[gap_bins]
family = MONOMIAL
order = CONSTANT
[]
[avg_p]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[gap_bins]
type = SpatialUserObjectAux
variable = gap_bins
user_object = subchannel_binning
[]
[avg_p]
type = SpatialUserObjectAux
variable = avg_p
user_object = gap_avg
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredGapBin
direction = z
num_layers = 6
[]
[gap_avg]
type = NekBinnedPlaneAverage
bins = 'subchannel_binning axial_binning'
field = pressure
gap_thickness = ${gap_thickness}
map_space_by_qp = true
[]
[gap_area]
type = NekBinnedPlaneIntegral
bins = 'subchannel_binning axial_binning'
field = unity
gap_thickness = ${gap_thickness}
map_space_by_qp = true
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel_axial.i'
execute_on = timestep_end
[]
[]
[Transfers]
[uo1_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = gap_avg
to_multi_app = subchannel
variable = gap_avg
[]
[uo2_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = gap_area
to_multi_app = subchannel
variable = gap_area
[]
[temp_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
variable = P
source_variable = P
[]
[]
[VectorPostprocessors]
[avg_p]
type = SpatialUserObjectVectorPostprocessor
userobject = gap_avg
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/cht/pincell_p_v/nek.i)
[Problem]
type = NekRSProblem
casename = 'sfr_pin'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[Mesh]
type = NekRSMesh
order = SECOND
boundary = '1'
# we dont have any volume-based coupling with NekRS, but by specifying
# volume here, we will extract pressure and velocity on
# a volume mesh mirror
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
(test/tests/transfers/nek_temperature/nek.i)
dTv = 10
Tv = 5
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 2
[FieldTransfers]
[temperature]
type = NekFieldVariable
direction = to_nek
usrwrk_slot = 1
[]
[nek_temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[]
[Dimensionalize]
dT = ${dTv}
T = ${Tv}
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1'
[]
[ICs]
[tv]
type = FunctionIC
variable = temperature
function = tv
[]
[]
[Functions]
[tv] # temperature, dimensional
type = ParsedFunction
expression = 'sin(x)'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[Quadrature]
type = GAUSS_LOBATTO
order = FIRST
[]
[]
[AuxVariables]
[d]
[]
[]
[AuxKernels]
[d]
type = ParsedAux
variable = d
expression = 'nek_temp - temperature'
coupled_variables = 'nek_temp temperature'
[]
[]
[Postprocessors]
[max_error]
type = ElementExtremeValue
variable = d
[]
[]
[Outputs]
csv = true
exodus = true
[]
(test/tests/cht/pebble/nek.i)
[Mesh]
type = NekRSMesh
boundary = '1'
# nekRS solves with a length scale of meters, but nek_master.i is currently solving
# in terms of centimeters. Therefore, just for the sake of data transfers, we need to
# scale NekRSMesh to centimeters.
scaling = 100.0
[]
[Problem]
type = NekRSProblem
casename = 'onepebble2'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
direction = to_nek
postprocessor_to_conserve = flux_integral
usrwrk_slot = 0
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
[Postprocessors]
# This is the heat flux in the nekRS solution, i.e. it is not an integral
# of nrs->usrwrk, instead this is directly an integral of k*grad(T)*hat(n).
# So this should closely match 'flux_integral'
[flux_in_nek]
type = NekHeatFluxIntegral
boundary = '1'
[]
[max_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[]
(test/tests/deformation/vol-areas/nek.i)
[Mesh]
type = NekRSMesh
order = SECOND
volume = true
parallel_type = replicated
displacements = 'disp_x disp_y disp_z'
[]
[Problem]
type = NekRSProblem
casename = 'nekbox'
n_usrwrk_slots = 4
[FieldTransfers]
[heat_source]
type = NekVolumetricSource
direction = to_nek
usrwrk_slot = 0
postprocessor_to_conserve = source_integral
[]
[disp]
type = NekMeshDeformation
usrwrk_slot = '1 2 3'
direction = to_nek
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[Quadrature]
type = GAUSS_LOBATTO
order = SECOND
[]
[]
[Postprocessors]
[nekbdry_icar1]
type = AreaPostprocessor
boundary = '1'
use_displaced_mesh = true
execute_on = INITIAL
[]
[nekbdry_ar1]
type = AreaPostprocessor
boundary = '1'
use_displaced_mesh = true
[]
[nekbdry_ar2]
type = AreaPostprocessor
boundary = '2'
use_displaced_mesh = true
[]
[nekbdry_ar3]
type = AreaPostprocessor
boundary = '3'
use_displaced_mesh = true
[]
[nekbdry_ar4]
type = AreaPostprocessor
boundary = '4'
use_displaced_mesh = true
[]
[nekbdry_ar5]
type = AreaPostprocessor
boundary = '5'
use_displaced_mesh = true
[]
[nekbdry_ar6]
type = AreaPostprocessor
boundary = '6'
use_displaced_mesh = true
[]
[]
[Outputs]
csv = true
execute_on = 'final'
# uncomment the temp_ansol to see that the solution matches very well
hide = 'source_integral heat_source'
[]
(test/tests/nek_errors/no_temp_solve/nek.i)
[Mesh]
type = NekRSMesh
boundary = '6'
[]
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 1
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/postprocessors/nek_point_value/points.i)
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 4
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[vx]
type = NekPointValue
field = velocity_x
point = '0.25 0.3 0.27'
[]
[vy]
type = NekPointValue
field = velocity_y
point = '0.25 0.3 0.27'
[]
[vz]
type = NekPointValue
field = velocity_z
point = '0.25 0.3 0.27'
[]
[comp]
type = NekPointValue
field = velocity_component
velocity_direction = '0.5 0.5 0.5'
point = '0.25 0.3 0.27'
[]
[vx2]
type = NekPointValue
field = velocity_x_squared
point = '0.25 0.3 0.27'
[]
[vy2]
type = NekPointValue
field = velocity_y_squared
point = '0.25 0.3 0.27'
[]
[vz2]
type = NekPointValue
field = velocity_z_squared
point = '0.25 0.3 0.27'
[]
[vel]
type = NekPointValue
field = velocity
point = '0.25 0.3 0.27'
[]
[temp]
type = NekPointValue
field = temperature
point = '0.25 0.3 0.27'
[]
[p]
type = NekPointValue
field = pressure
point = '0.25 0.3 0.27'
[]
[scalar01]
type = NekPointValue
field = scalar01
point = '0.25 0.3 0.27'
[]
[scalar02]
type = NekPointValue
field = scalar02
point = '0.25 0.3 0.27'
[]
[scalar03]
type = NekPointValue
field = scalar03
point = '0.25 0.3 0.27'
[]
[unity]
type = NekPointValue
field = unity
point = '0.25 0.3 0.27'
[]
[usrwrk00]
type = NekPointValue
field = usrwrk00
point = '0.25 0.3 0.27'
[]
[usrwrk01]
type = NekPointValue
field = usrwrk01
point = '0.25 0.3 0.27'
[]
[usrwrk02]
type = NekPointValue
field = usrwrk02
point = '0.25 0.3 0.27'
[]
[]
[Outputs]
csv = true
[]
(test/tests/conduction/identical_interface/cube/nek.i)
[Problem]
type = NekRSProblem
casename = 'cube'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '4'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
(test/tests/nek_errors/invalid_settings/executioner.i)
[Mesh]
type = NekRSMesh
boundary = '3'
[]
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Executioner]
type = Steady
[]
(test/tests/userobjects/volume/nondimensional/nek.i)
[Mesh]
type = NekRSMesh
volume = true
scaling = 7.646e-3
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[Dimensionalize]
L = 7.646e-3
T = 100.0
dT = 50.0
U = 2.0
rho = 834.5
Cp = 1228.0
[]
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[AuxVariables]
[avg_T]
family = MONOMIAL
order = CONSTANT
[]
[avg_p]
family = MONOMIAL
order = CONSTANT
[]
[avg_v]
family = MONOMIAL
order = CONSTANT
[]
[integral_T]
family = MONOMIAL
order = CONSTANT
[]
[integral_p]
family = MONOMIAL
order = CONSTANT
[]
[integral_v]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[avg_T]
type = SpatialUserObjectAux
variable = avg_T
user_object = avg_T
[]
[avg_p]
type = SpatialUserObjectAux
variable = avg_p
user_object = avg_p
[]
[avg_v]
type = SpatialUserObjectAux
variable = avg_v
user_object = avg_v
[]
[integral_T]
type = SpatialUserObjectAux
variable = integral_T
user_object = integral_T
[]
[integral_p]
type = SpatialUserObjectAux
variable = integral_p
user_object = integral_p
[]
[integral_v]
type = SpatialUserObjectAux
variable = integral_v
user_object = integral_v
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[avg_T]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = temperature
[]
[avg_p]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = pressure
[]
[avg_v]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = velocity
[]
[integral_T]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = temperature
[]
[integral_p]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = pressure
[]
[integral_v]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = velocity
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel.i'
execute_on = timestep_end
[]
[]
[Transfers]
[uo1_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_T
to_multi_app = subchannel
variable = avg_T
[]
[uo2_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_p
to_multi_app = subchannel
variable = avg_p
[]
[uo3_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_v
to_multi_app = subchannel
variable = avg_v
[]
[uo4_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_T
to_multi_app = subchannel
variable = integral_T
[]
[uo5_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_p
to_multi_app = subchannel
variable = integral_p
[]
[uo6_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_v
to_multi_app = subchannel
variable = integral_v
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/deformation/simple-cube/nek.i)
[Mesh]
type = NekRSMesh
order = SECOND
volume = true
parallel_type = replicated
displacements = 'disp_x disp_y disp_z'
[]
[Problem]
type = NekRSProblem
casename = 'nekbox'
synchronization_interval = parent_app
n_usrwrk_slots = 4
[FieldTransfers]
[heat_source]
type = NekVolumetricSource
direction = to_nek
usrwrk_slot = 0
postprocessor_to_conserve = source_integral
[]
[disp]
type = NekMeshDeformation
usrwrk_slot = '1 2 3'
direction = to_nek
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[AuxVariables]
[temp_ansol]
order = SECOND
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[integral]
type = ElementL2Difference
variable = temp
other_variable = temp_ansol
execute_on = timestep_end
[]
[max_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
execute_on = timestep_end
[]
[min_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
execute_on = timestep_end
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
# uncomment the temp_ansol to see that the solution matches very well
hide = 'heat_source transfer_in source_integral temp_ansol'
[]
(test/tests/nek_errors/no_temp_var/nek.i)
[Mesh]
type = NekRSMesh
boundary = '6'
[]
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 1
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/postprocessors/nek_side_integral/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[area_side1]
type = NekSideIntegral
field = unity
boundary = '1'
[]
[area_side2]
type = NekSideIntegral
field = unity
boundary = '2'
[]
[area_side3]
type = NekSideIntegral
field = unity
boundary = '3'
[]
[area_side4]
type = NekSideIntegral
field = unity
boundary = '4'
[]
[area_side5]
type = NekSideIntegral
field = unity
boundary = '5'
[]
[area_side6]
type = NekSideIntegral
field = unity
boundary = '6'
[]
[area_side7]
type = NekSideIntegral
field = unity
boundary = '7'
[]
[area_side8]
type = NekSideIntegral
field = unity
boundary = '8'
[]
[temp_side1]
type = NekSideIntegral
field = temperature
boundary = '1'
[]
[temp_side2]
type = NekSideIntegral
field = temperature
boundary = '2'
[]
[temp_side3]
type = NekSideIntegral
field = temperature
boundary = '3'
[]
[temp_side4]
type = NekSideIntegral
field = temperature
boundary = '4'
[]
[temp_side5]
type = NekSideIntegral
field = temperature
boundary = '5'
[]
[temp_side6]
type = NekSideIntegral
field = temperature
boundary = '6'
[]
[temp_side7]
type = NekSideIntegral
field = temperature
boundary = '7'
[]
[temp_side8]
type = NekSideIntegral
field = temperature
boundary = '8'
[]
[pressure_side1]
type = NekSideIntegral
field = pressure
boundary = '1'
[]
[pressure_side2]
type = NekSideIntegral
field = pressure
boundary = '2'
[]
[pressure_side3]
type = NekSideIntegral
field = pressure
boundary = '3'
[]
[pressure_side4]
type = NekSideIntegral
field = pressure
boundary = '4'
[]
[pressure_side5]
type = NekSideIntegral
field = pressure
boundary = '5'
[]
[pressure_side6]
type = NekSideIntegral
field = pressure
boundary = '6'
[]
[pressure_side7]
type = NekSideIntegral
field = pressure
boundary = '7'
[]
[pressure_side8]
type = NekSideIntegral
field = pressure
boundary = '8'
[]
[velocity_avg1]
type = NekSideIntegral
field = velocity
boundary = '1'
[]
[velocity_avg2]
type = NekSideIntegral
field = velocity
boundary = '2'
[]
[velocity_avg3]
type = NekSideIntegral
field = velocity
boundary = '3'
[]
[velocity_avg4]
type = NekSideIntegral
field = velocity
boundary = '4'
[]
[velocity_avg5]
type = NekSideIntegral
field = velocity
boundary = '5'
[]
[velocity_avg6]
type = NekSideIntegral
field = velocity
boundary = '6'
[]
[velocity_avg7]
type = NekSideIntegral
field = velocity
boundary = '7'
[]
[velocity_avg8]
type = NekSideIntegral
field = velocity
boundary = '8'
[]
[velocity_comp1]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '1'
[]
[velocity_comp2]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '2'
[]
[velocity_comp3]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '3'
[]
[velocity_comp4]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '4'
[]
[velocity_comp5]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '5'
[]
[velocity_comp6]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '6'
[]
[velocity_comp7]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '7'
[]
[velocity_comp8]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '8'
[]
[]
(test/tests/conduction/nonidentical_interface/cylinders/nek_mini.i)
[Problem]
type = NekRSProblem
casename = 'cylinder'
synchronization_interval = parent_app
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '2'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_temp_nek]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_temp_nek]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
(test/tests/userobjects/subchannel_layered/1d.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[]
[AuxVariables]
[uo]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[uo]
type = SpatialUserObjectAux
variable = uo
user_object = vol_avg
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[vol_avg]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning'
field = temperature
[]
[]
[VectorPostprocessors]
# from_uo gives exactly the same results as manually specifying the points in 'manually_provided',
# but without the headache of figuring out what all the centroids of the subchannels are
[from_uo]
type = SpatialUserObjectVectorPostprocessor
userobject = vol_avg
[]
[manually_provided]
type = SpatialUserObjectVectorPostprocessor
userobject = vol_avg
points = ' 0 0.00517635 0
-0.00448285 0.00258817 0
-0.00448285 -0.00258817 0
0 -0.00517635 0
0.00448285 -0.00258817 0
0.00448285 0.00258817 0
0 0.010342 0
-0.00895648 0.00517102 0
-0.00895648 -0.00517102 0
0 -0.010342 0
0.00895648 -0.00517102 0
0.00895648 0.00517102 0
0.00634302 0.0109864 0
-0.00634302 0.0109864 0
-0.01268600 0 0
-0.00634302 -0.0109864 0
0.00634302 -0.0109864 0
0.01268600 0 0'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
csv = true
execute_on = 'final'
[]
(test/tests/conduction/nonidentical_volume/nondimensional/nek.i)
[Problem]
type = NekRSProblem
casename = 'cylinder'
n_usrwrk_slots = 1
[Dimensionalize]
T = 500.0
dT = 50.0
rho = 5.0
Cp = 6.0
L = 0.5
U = 1.0
[]
[FieldTransfers]
[heat_source]
type = NekVolumetricSource
usrwrk_slot = 0
direction = to_nek
postprocessor_to_conserve = source_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
# change to SECOND to exactly match the verification case in ../cylinder; we use
# FIRST here just to reduce the size of the gold file
order = FIRST
# nekRS runs in nondimensional form, so we need to adjust the mesh (in nondimensional
# coordinates) to the dimensional form expected by MOOSE
scaling = 0.5
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[avg_T_volume]
type = NekVolumeAverage
field = temperature
[]
[T_volume]
type = NekVolumeIntegral
field = temperature
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
# we can infer that these variables dont change by ensuring that 'temp' does not change,
# since these other two variables are boundary conditions and source terms for the energy equation
hide = 'heat_source'
[]
(test/tests/postprocessors/nek_side_extrema/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[max_temp_side1]
type = NekSideExtremeValue
field = temperature
boundary = '1'
value_type = max
[]
[max_temp_side2]
type = NekSideExtremeValue
field = temperature
boundary = '2'
value_type = max
[]
[max_temp_side3]
type = NekSideExtremeValue
field = temperature
boundary = '3'
value_type = max
[]
[max_temp_side4]
type = NekSideExtremeValue
field = temperature
boundary = '4'
value_type = max
[]
[max_temp_side5]
type = NekSideExtremeValue
field = temperature
boundary = '5'
value_type = max
[]
[max_temp_side6]
type = NekSideExtremeValue
field = temperature
boundary = '6'
value_type = max
[]
[max_temp_side7]
type = NekSideExtremeValue
field = temperature
boundary = '7'
value_type = max
[]
[max_temp_side8]
type = NekSideExtremeValue
field = temperature
boundary = '8'
value_type = max
[]
[min_temp_side1]
type = NekSideExtremeValue
field = temperature
boundary = '1'
value_type = min
[]
[min_temp_side2]
type = NekSideExtremeValue
field = temperature
boundary = '2'
value_type = min
[]
[min_temp_side3]
type = NekSideExtremeValue
field = temperature
boundary = '3'
value_type = min
[]
[min_temp_side4]
type = NekSideExtremeValue
field = temperature
boundary = '4'
value_type = min
[]
[min_temp_side5]
type = NekSideExtremeValue
field = temperature
boundary = '5'
value_type = min
[]
[min_temp_side6]
type = NekSideExtremeValue
field = temperature
boundary = '6'
value_type = min
[]
[min_temp_side7]
type = NekSideExtremeValue
field = temperature
boundary = '7'
value_type = min
[]
[min_temp_side8]
type = NekSideExtremeValue
field = temperature
boundary = '8'
value_type = min
[]
[max_pressure_side1]
type = NekSideExtremeValue
field = pressure
boundary = '1'
[]
[max_pressure_side2]
type = NekSideExtremeValue
field = pressure
boundary = '2'
[]
[max_pressure_side3]
type = NekSideExtremeValue
field = pressure
boundary = '3'
[]
[max_pressure_side4]
type = NekSideExtremeValue
field = pressure
boundary = '4'
[]
[max_pressure_side5]
type = NekSideExtremeValue
field = pressure
boundary = '5'
[]
[max_pressure_side6]
type = NekSideExtremeValue
field = pressure
boundary = '6'
[]
[max_pressure_side7]
type = NekSideExtremeValue
field = pressure
boundary = '7'
[]
[max_pressure_side8]
type = NekSideExtremeValue
field = pressure
boundary = '8'
[]
[min_pressure_side1]
type = NekSideExtremeValue
field = pressure
boundary = '1'
value_type = min
[]
[min_pressure_side2]
type = NekSideExtremeValue
field = pressure
boundary = '2'
value_type = min
[]
[min_pressure_side3]
type = NekSideExtremeValue
field = pressure
boundary = '3'
value_type = min
[]
[min_pressure_side4]
type = NekSideExtremeValue
field = pressure
boundary = '4'
value_type = min
[]
[min_pressure_side5]
type = NekSideExtremeValue
field = pressure
boundary = '5'
value_type = min
[]
[min_pressure_side6]
type = NekSideExtremeValue
field = pressure
boundary = '6'
value_type = min
[]
[min_pressure_side7]
type = NekSideExtremeValue
field = pressure
boundary = '7'
value_type = min
[]
[min_pressure_side8]
type = NekSideExtremeValue
field = pressure
boundary = '8'
value_type = min
[]
[max_velocity_side1]
type = NekSideExtremeValue
field = velocity
boundary = '1'
value_type = max
[]
[max_velocity_side2]
type = NekSideExtremeValue
field = velocity
boundary = '2'
value_type = max
[]
[max_velocity_side3]
type = NekSideExtremeValue
field = velocity
boundary = '3'
value_type = max
[]
[max_velocity_side4]
type = NekSideExtremeValue
field = velocity
boundary = '4'
value_type = max
[]
[max_velocity_side5]
type = NekSideExtremeValue
field = velocity
boundary = '5'
value_type = max
[]
[max_velocity_side6]
type = NekSideExtremeValue
field = velocity
boundary = '6'
value_type = max
[]
[max_velocity_side7]
type = NekSideExtremeValue
field = velocity
boundary = '7'
value_type = max
[]
[max_velocity_side8]
type = NekSideExtremeValue
field = velocity
boundary = '8'
value_type = max
[]
[min_velocity_side1]
type = NekSideExtremeValue
field = velocity
boundary = '1'
value_type = min
[]
[min_velocity_side2]
type = NekSideExtremeValue
field = velocity
boundary = '2'
value_type = min
[]
[min_velocity_side3]
type = NekSideExtremeValue
field = velocity
boundary = '3'
value_type = min
[]
[min_velocity_side4]
type = NekSideExtremeValue
field = velocity
boundary = '4'
value_type = min
[]
[min_velocity_side5]
type = NekSideExtremeValue
field = velocity
boundary = '5'
value_type = min
[]
[min_velocity_side6]
type = NekSideExtremeValue
field = velocity
boundary = '6'
value_type = min
[]
[min_velocity_side7]
type = NekSideExtremeValue
field = velocity
boundary = '7'
value_type = min
[]
[min_velocity_side8]
type = NekSideExtremeValue
field = velocity
boundary = '8'
value_type = min
[]
[max_x_velocity_side1]
type = NekSideExtremeValue
field = velocity_x
boundary = '1'
value_type = max
[]
[max_x_velocity_side2]
type = NekSideExtremeValue
field = velocity_x
boundary = '2'
value_type = max
[]
[max_x_velocity_side3]
type = NekSideExtremeValue
field = velocity_x
boundary = '3'
value_type = max
[]
[max_x_velocity_side4]
type = NekSideExtremeValue
field = velocity_x
boundary = '4'
value_type = max
[]
[max_x_velocity_side5]
type = NekSideExtremeValue
field = velocity_x
boundary = '5'
value_type = max
[]
[max_x_velocity_side6]
type = NekSideExtremeValue
field = velocity_x
boundary = '6'
value_type = max
[]
[max_x_velocity_side7]
type = NekSideExtremeValue
field = velocity_x
boundary = '7'
value_type = max
[]
[max_x_velocity_side8]
type = NekSideExtremeValue
field = velocity_x
boundary = '8'
value_type = max
[]
[min_x_velocity_side1]
type = NekSideExtremeValue
field = velocity_x
boundary = '1'
value_type = min
[]
[min_x_velocity_side2]
type = NekSideExtremeValue
field = velocity_x
boundary = '2'
value_type = min
[]
[min_x_velocity_side3]
type = NekSideExtremeValue
field = velocity_x
boundary = '3'
value_type = min
[]
[min_x_velocity_side4]
type = NekSideExtremeValue
field = velocity_x
boundary = '4'
value_type = min
[]
[min_x_velocity_side5]
type = NekSideExtremeValue
field = velocity_x
boundary = '5'
value_type = min
[]
[min_x_velocity_side6]
type = NekSideExtremeValue
field = velocity_x
boundary = '6'
value_type = min
[]
[min_x_velocity_side7]
type = NekSideExtremeValue
field = velocity_x
boundary = '7'
value_type = min
[]
[min_x_velocity_side8]
type = NekSideExtremeValue
field = velocity_x
boundary = '8'
value_type = min
[]
[max_y_velocity_side1]
type = NekSideExtremeValue
field = velocity_y
boundary = '1'
value_type = max
[]
[max_y_velocity_side2]
type = NekSideExtremeValue
field = velocity_y
boundary = '2'
value_type = max
[]
[max_y_velocity_side3]
type = NekSideExtremeValue
field = velocity_y
boundary = '3'
value_type = max
[]
[max_y_velocity_side4]
type = NekSideExtremeValue
field = velocity_y
boundary = '4'
value_type = max
[]
[max_y_velocity_side5]
type = NekSideExtremeValue
field = velocity_y
boundary = '5'
value_type = max
[]
[max_y_velocity_side6]
type = NekSideExtremeValue
field = velocity_y
boundary = '6'
value_type = max
[]
[max_y_velocity_side7]
type = NekSideExtremeValue
field = velocity_y
boundary = '7'
value_type = max
[]
[max_y_velocity_side8]
type = NekSideExtremeValue
field = velocity_y
boundary = '8'
value_type = max
[]
[min_y_velocity_side1]
type = NekSideExtremeValue
field = velocity_y
boundary = '1'
value_type = min
[]
[min_y_velocity_side2]
type = NekSideExtremeValue
field = velocity_y
boundary = '2'
value_type = min
[]
[min_y_velocity_side3]
type = NekSideExtremeValue
field = velocity_y
boundary = '3'
value_type = min
[]
[min_y_velocity_side4]
type = NekSideExtremeValue
field = velocity_y
boundary = '4'
value_type = min
[]
[min_y_velocity_side5]
type = NekSideExtremeValue
field = velocity_y
boundary = '5'
value_type = min
[]
[min_y_velocity_side6]
type = NekSideExtremeValue
field = velocity_y
boundary = '6'
value_type = min
[]
[min_y_velocity_side7]
type = NekSideExtremeValue
field = velocity_y
boundary = '7'
value_type = min
[]
[min_y_velocity_side8]
type = NekSideExtremeValue
field = velocity_y
boundary = '8'
value_type = min
[]
[max_z_velocity_side1]
type = NekSideExtremeValue
field = velocity_z
boundary = '1'
value_type = max
[]
[max_z_velocity_side2]
type = NekSideExtremeValue
field = velocity_z
boundary = '2'
value_type = max
[]
[max_z_velocity_side3]
type = NekSideExtremeValue
field = velocity_z
boundary = '3'
value_type = max
[]
[max_z_velocity_side4]
type = NekSideExtremeValue
field = velocity_z
boundary = '4'
value_type = max
[]
[max_z_velocity_side5]
type = NekSideExtremeValue
field = velocity_z
boundary = '5'
value_type = max
[]
[max_z_velocity_side6]
type = NekSideExtremeValue
field = velocity_z
boundary = '6'
value_type = max
[]
[max_z_velocity_side7]
type = NekSideExtremeValue
field = velocity_z
boundary = '7'
value_type = max
[]
[max_z_velocity_side8]
type = NekSideExtremeValue
field = velocity_z
boundary = '8'
value_type = max
[]
[min_z_velocity_side1]
type = NekSideExtremeValue
field = velocity_z
boundary = '1'
value_type = min
[]
[min_z_velocity_side2]
type = NekSideExtremeValue
field = velocity_z
boundary = '2'
value_type = min
[]
[min_z_velocity_side3]
type = NekSideExtremeValue
field = velocity_z
boundary = '3'
value_type = min
[]
[min_z_velocity_side4]
type = NekSideExtremeValue
field = velocity_z
boundary = '4'
value_type = min
[]
[min_z_velocity_side5]
type = NekSideExtremeValue
field = velocity_z
boundary = '5'
value_type = min
[]
[min_z_velocity_side6]
type = NekSideExtremeValue
field = velocity_z
boundary = '6'
value_type = min
[]
[min_z_velocity_side7]
type = NekSideExtremeValue
field = velocity_z
boundary = '7'
value_type = min
[]
[min_z_velocity_side8]
type = NekSideExtremeValue
field = velocity_z
boundary = '8'
value_type = min
[]
[]
(test/tests/postprocessors/nek_point_value/unknown.i)
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 4
[Dimensionalize]
L = 5.0
U = 0.2
T = 10.0
dT = 200.0
rho = 1000
Cp = 3000
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 5.0
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[usrwrk]
type = NekPointValue
field = usrwrk02
point = '0.25 0.3 0.27'
[]
[]
(test/tests/userobjects/subchannel_layered/wrong_type.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelGapBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[vol_avg]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = temperature
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(tutorials/load_from_exodus/nek.i)
[Mesh]
type = NekRSMesh
volume = true
order = SECOND
[]
[Problem]
type = NekRSProblem
casename = 'ethier'
[FieldTransfers]
[temperature]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/userobjects/radial_layered/1d.i)
[Problem]
type = NekRSProblem
casename = 'cylinder'
[Dimensionalize]
L = 5.0
U = 1.0
rho = 834.5
Cp = 1228.0
T = 573.0
dT = 10.0
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 5.0
[]
[AuxVariables]
[uo]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[uo]
type = SpatialUserObjectAux
variable = uo
user_object = vol_integral
[]
[]
[UserObjects]
[r_bins]
type = RadialBin
vertical_axis = z
nr = 5
rmin = 0.0
rmax = 1.0
[]
[vol_integral]
type = NekBinnedVolumeIntegral
bins = 'r_bins'
field = pressure
[]
[]
[VectorPostprocessors]
# from_uo gives exactly the same results as manually specifying the points in 'manually_provided'
[from_uo]
type = SpatialUserObjectVectorPostprocessor
userobject = vol_integral
[]
[manually_provided]
type = SpatialUserObjectVectorPostprocessor
userobject = vol_integral
points = '0.1 0.0 0.0
0.3 0.0 0.0
0.5 0.0 0.0
0.7 0.0 0.0
0.9 0.0 0.0'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
exodus = true
execute_on = 'final'
[]
(test/tests/nek_mesh/second_order/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
order = SECOND
boundary = '1 2 3 4'
[]
# only here to avoid a re-gold
[Variables]
[dummy]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
# The points provided to these postprocessors are the centroids of the elements that
# we wish to print the node coordinates for.
[Postprocessors]
[num_elems]
type = NekMeshInfoPostprocessor
test_type = num_elems
[]
[num_nodes]
type = NekMeshInfoPostprocessor
test_type = num_nodes
[]
# coordinates of nodes of element 0
[elem0_node0_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 0
test_type = node_x
[]
[elem0_node0_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 0
test_type = node_y
[]
[elem0_node0_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 0
test_type = node_z
[]
[elem0_node1_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 1
test_type = node_x
[]
[elem0_node1_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 1
test_type = node_y
[]
[elem0_node1_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 1
test_type = node_z
[]
[elem0_node2_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 2
test_type = node_x
[]
[elem0_node2_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 2
test_type = node_y
[]
[elem0_node2_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 2
test_type = node_z
[]
[elem0_node3_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 3
test_type = node_x
[]
[elem0_node3_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 3
test_type = node_y
[]
[elem0_node3_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 3
test_type = node_z
[]
[elem0_node4_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 4
test_type = node_x
[]
[elem0_node4_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 4
test_type = node_y
[]
[elem0_node4_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 4
test_type = node_z
[]
[elem0_node5_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 5
test_type = node_x
[]
[elem0_node5_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 5
test_type = node_y
[]
[elem0_node5_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 5
test_type = node_z
[]
[elem0_node6_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 6
test_type = node_x
[]
[elem0_node6_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 6
test_type = node_y
[]
[elem0_node6_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 6
test_type = node_z
[]
[elem0_node7_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 7
test_type = node_x
[]
[elem0_node7_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 7
test_type = node_y
[]
[elem0_node7_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 7
test_type = node_z
[]
[elem0_node8_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 8
test_type = node_x
[]
[elem0_node8_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 8
test_type = node_y
[]
[elem0_node8_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 8
test_type = node_z
[]
# coordinates of nodes of element 24
[elem24_node0_x]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 0
test_type = node_x
[]
[elem24_node0_y]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 0
test_type = node_y
[]
[elem24_node0_z]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 0
test_type = node_z
[]
[elem24_node1_x]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 1
test_type = node_x
[]
[elem24_node1_y]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 1
test_type = node_y
[]
[elem24_node1_z]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 1
test_type = node_z
[]
[elem24_node2_x]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 2
test_type = node_x
[]
[elem24_node2_y]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 2
test_type = node_y
[]
[elem24_node2_z]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 2
test_type = node_z
[]
[elem24_node3_x]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 3
test_type = node_x
[]
[elem24_node3_y]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 3
test_type = node_y
[]
[elem24_node3_z]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 3
test_type = node_z
[]
[elem24_node4_x]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 4
test_type = node_x
[]
[elem24_node4_y]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 4
test_type = node_y
[]
[elem24_node4_z]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 4
test_type = node_z
[]
[elem24_node5_x]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 5
test_type = node_x
[]
[elem24_node5_y]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 5
test_type = node_y
[]
[elem24_node5_z]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 5
test_type = node_z
[]
[elem24_node6_x]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 6
test_type = node_x
[]
[elem24_node6_y]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 6
test_type = node_y
[]
[elem24_node6_z]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 6
test_type = node_z
[]
[elem24_node7_x]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 7
test_type = node_x
[]
[elem24_node7_y]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 7
test_type = node_y
[]
[elem24_node7_z]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 7
test_type = node_z
[]
[elem24_node8_x]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 8
test_type = node_x
[]
[elem24_node8_y]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 8
test_type = node_y
[]
[elem24_node8_z]
type = NekMeshInfoPostprocessor
point = '0.230318929 -0.0598418287 0.365828589'
node = 8
test_type = node_z
[]
# coordinates of nodes of element 147
[elem147_node0_x]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 0
test_type = node_x
[]
[elem147_node0_y]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 0
test_type = node_y
[]
[elem147_node0_z]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 0
test_type = node_z
[]
[elem147_node1_x]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 1
test_type = node_x
[]
[elem147_node1_y]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 1
test_type = node_y
[]
[elem147_node1_z]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 1
test_type = node_z
[]
[elem147_node2_x]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 2
test_type = node_x
[]
[elem147_node2_y]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 2
test_type = node_y
[]
[elem147_node2_z]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 2
test_type = node_z
[]
[elem147_node3_x]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 3
test_type = node_x
[]
[elem147_node3_y]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 3
test_type = node_y
[]
[elem147_node3_z]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 3
test_type = node_z
[]
[elem147_node4_x]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 4
test_type = node_x
[]
[elem147_node4_y]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 4
test_type = node_y
[]
[elem147_node4_z]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 4
test_type = node_z
[]
[elem147_node5_x]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 5
test_type = node_x
[]
[elem147_node5_y]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 5
test_type = node_y
[]
[elem147_node5_z]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 5
test_type = node_z
[]
[elem147_node6_x]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 6
test_type = node_x
[]
[elem147_node6_y]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 6
test_type = node_y
[]
[elem147_node6_z]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 6
test_type = node_z
[]
[elem147_node7_x]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 7
test_type = node_x
[]
[elem147_node7_y]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 7
test_type = node_y
[]
[elem147_node7_z]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 7
test_type = node_z
[]
[elem147_node8_x]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 8
test_type = node_x
[]
[elem147_node8_y]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 8
test_type = node_y
[]
[elem147_node8_z]
type = NekMeshInfoPostprocessor
point = '-0.14039954 0.31434312 -0.456323104'
node = 8
test_type = node_z
[]
[]
(test/tests/nek_mesh/exact/exact_volume.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Mesh]
type = NekRSMesh
volume = true
exact = true
[]
(test/tests/postprocessors/nek_volume_average/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 4
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[usrwrk00]
type = NekVolumeAverage
field = usrwrk00
[]
[usrwrk01]
type = NekVolumeAverage
field = usrwrk01
[]
[usrwrk02]
type = NekVolumeAverage
field = usrwrk02
[]
[unity_average]
type = NekVolumeAverage
field = unity
[]
[temp_average]
type = NekVolumeAverage
field = temperature
[]
[s01_average]
type = NekVolumeAverage
field = scalar01
[]
[s02_average]
type = NekVolumeAverage
field = scalar02
[]
[s03_average]
type = NekVolumeAverage
field = scalar03
[]
[pressure_average]
type = NekVolumeAverage
field = pressure
[]
[velocity_average]
type = NekVolumeAverage
field = velocity
[]
[x_velocity_average]
type = NekVolumeAverage
field = velocity_x
[]
[y_velocity_average]
type = NekVolumeAverage
field = velocity_y
[]
[z_velocity_average]
type = NekVolumeAverage
field = velocity_z
[]
[x2_velocity_average]
type = NekVolumeAverage
field = velocity_x_squared
[]
[y2_velocity_average]
type = NekVolumeAverage
field = velocity_y_squared
[]
[z2_velocity_average]
type = NekVolumeAverage
field = velocity_z_squared
[]
[velocity_component]
type = NekVolumeAverage
field = velocity_component
velocity_direction = '0.1 0.2 -0.3'
[]
[]
(test/tests/conduction/zero_flux/nek_disjoint.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
conserve_flux_by_sideset = true
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1 2'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[flux1]
type = NekUsrWrkBoundaryIntegral
usrwrk_slot = 0
boundary = '1'
[]
[flux2]
type = NekUsrWrkBoundaryIntegral
usrwrk_slot = 0
boundary = '2'
[]
[]
(test/tests/postprocessors/dimensionless_numbers/dimensional/ranks.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Mesh]
type = NekRSMesh
boundary = '3'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[ranks]
type = NekNumRanks
[]
[]
(test/tests/conduction/boundary_and_volume/prism/nek_exact.i)
[Problem]
type = NekRSProblem
casename = 'pyramid_low'
usrwrk_output = '0 1'
usrwrk_output_prefix = 'flx src'
n_usrwrk_slots = 2
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
postprocessor_to_conserve = flux_integral
[]
[heat_source]
type = NekVolumetricSource
usrwrk_slot = 1
direction = to_nek
postprocessor_to_conserve = source_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
boundary = '2'
order = FIRST
exact = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[avg_T_volume]
type = NekVolumeAverage
field = temperature
[]
[heat_flux]
type = NekHeatFluxIntegral
boundary = '2'
[]
[nek_min_1]
type = NekSideExtremeValue
field = temperature
boundary = '3'
value_type = min
[]
[nek_min_2]
type = NekSideExtremeValue
field = temperature
boundary = '4'
value_type = min
[]
[nek_min_3]
type = NekSideExtremeValue
field = temperature
boundary = '5'
value_type = min
[]
[nek_min_4]
type = NekSideExtremeValue
field = temperature
boundary = '6'
value_type = min
[]
[nek_max_1]
type = NekSideExtremeValue
field = temperature
boundary = '3'
[]
[nek_max_2]
type = NekSideExtremeValue
field = temperature
boundary = '4'
[]
[nek_max_3]
type = NekSideExtremeValue
field = temperature
boundary = '5'
[]
[nek_max_4]
type = NekSideExtremeValue
field = temperature
boundary = '6'
[]
[]
[Outputs]
exodus = true
interval = 30
hide = 'flux_integral source_integral'
[]
(test/tests/conduction/nonidentical_interface/cylinders/nek.i)
[Problem]
type = NekRSProblem
casename = 'cylinder'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
order = FIRST
boundary = '2'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_temp_nek]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_temp_nek]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
(test/tests/nek_mesh/first_order/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
order = FIRST
boundary = '1 2 3 4'
[]
# only here to avoid a re-gold
[Variables]
[dummy]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
# The points provided to these postprocessors are the centroids of the elements that
# we wish to print the node coordinates for.
[Postprocessors]
[num_elems]
type = NekMeshInfoPostprocessor
test_type = num_elems
[]
[num_nodes]
type = NekMeshInfoPostprocessor
test_type = num_nodes
[]
# coordinates of nodes of element 0
[elem0_node0_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 0
test_type = node_x
[]
[elem0_node0_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 0
test_type = node_y
[]
[elem0_node0_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 0
test_type = node_z
[]
[elem0_node1_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 1
test_type = node_x
[]
[elem0_node1_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 1
test_type = node_y
[]
[elem0_node1_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 1
test_type = node_z
[]
[elem0_node2_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 2
test_type = node_x
[]
[elem0_node2_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 2
test_type = node_y
[]
[elem0_node2_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 2
test_type = node_z
[]
[elem0_node3_x]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 3
test_type = node_x
[]
[elem0_node3_y]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 3
test_type = node_y
[]
[elem0_node3_z]
type = NekMeshInfoPostprocessor
point = '0.180650573 0.0296807698 0.471347985'
node = 3
test_type = node_z
[]
# coordinates of nodes of element 24
[elem24_node0_x]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 0
test_type = node_x
[]
[elem24_node0_y]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 0
test_type = node_y
[]
[elem24_node0_z]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 0
test_type = node_z
[]
[elem24_node1_x]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 1
test_type = node_x
[]
[elem24_node1_y]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 1
test_type = node_y
[]
[elem24_node1_z]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 1
test_type = node_z
[]
[elem24_node2_x]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 2
test_type = node_x
[]
[elem24_node2_y]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 2
test_type = node_y
[]
[elem24_node2_z]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 2
test_type = node_z
[]
[elem24_node3_x]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 3
test_type = node_x
[]
[elem24_node3_y]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 3
test_type = node_y
[]
[elem24_node3_z]
type = NekMeshInfoPostprocessor
point = '0.230319 -0.0598418 0.365829'
node = 3
test_type = node_z
[]
# coordinates of nodes of element 147
[elem147_node0_x]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 0
test_type = node_x
[]
[elem147_node0_y]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 0
test_type = node_y
[]
[elem147_node0_z]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 0
test_type = node_z
[]
[elem147_node1_x]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 1
test_type = node_x
[]
[elem147_node1_y]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 1
test_type = node_y
[]
[elem147_node1_z]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 1
test_type = node_z
[]
[elem147_node2_x]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 2
test_type = node_x
[]
[elem147_node2_y]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 2
test_type = node_y
[]
[elem147_node2_z]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 2
test_type = node_z
[]
[elem147_node3_x]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 3
test_type = node_x
[]
[elem147_node3_y]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 3
test_type = node_y
[]
[elem147_node3_z]
type = NekMeshInfoPostprocessor
point = '-0.1404 0.314343 -0.456323'
node = 3
test_type = node_z
[]
[]
(test/tests/userobjects/hexagonal_gap_layered/nek.i)
gap_thickness = ${fparse 0.05 * 7.646e-3}
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[FieldTransfers]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[AuxVariables]
[gap_bins]
family = MONOMIAL
order = CONSTANT
[]
[avg_temp]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[gap_bins]
type = SpatialUserObjectAux
variable = gap_bins
user_object = subchannel_binning
[]
[avg_temp]
type = SpatialUserObjectAux
variable = avg_temp
user_object = gap_avg
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelGapBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[gap_avg]
type = NekBinnedPlaneAverage
bins = 'subchannel_binning axial_binning'
field = temperature
gap_thickness = ${gap_thickness}
map_space_by_qp = true
[]
[gap_area]
type = NekBinnedPlaneIntegral
bins = 'subchannel_binning axial_binning'
field = unity
gap_thickness = ${gap_thickness}
map_space_by_qp = true
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel.i'
execute_on = timestep_end
[]
[]
[Transfers]
[uo1_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = gap_avg
to_multi_app = subchannel
variable = gap_avg
[]
[uo2_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = gap_area
to_multi_app = subchannel
variable = gap_area
[]
[temp_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
variable = temp
source_variable = temp
[]
[]
[VectorPostprocessors]
[avg_temp]
type = SpatialUserObjectVectorPostprocessor
userobject = gap_avg
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/postprocessors/nek_pressure_surface_force/nek.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[FieldTransfers]
[P]
type = NekFieldVariable
field = pressure
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[pressure_x]
type = NekPressureSurfaceForce
boundary = '1 2 3 4 5 6'
component = 'x'
mesh = 'fluid'
[]
[pressure_y]
type = NekPressureSurfaceForce
boundary = '1 2 3 4 5 6'
component = 'y'
mesh = 'fluid'
[]
[pressure_z]
type = NekPressureSurfaceForce
boundary = '1 2 3 4 5 6'
component = 'z'
mesh = 'fluid'
[]
[pressure_total]
type = NekPressureSurfaceForce
boundary = '1 2 3 4 5 6'
component = 'total'
mesh = 'fluid'
[]
# These are added to compare by hand
[pressure_x_3]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '3'
[]
[pressure_x_4]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '4'
[]
[pressure_x_comp]
type = DifferencePostprocessor
value1 = pressure_x_3
value2 = pressure_x_4
[]
[pressure_y_1]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '1'
[]
[pressure_y_2]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '2'
[]
[pressure_y_comp]
type = DifferencePostprocessor
value1 = pressure_y_1
value2 = pressure_y_2
[]
[pressure_z_6]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '6'
[]
[pressure_z_5]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '5'
[]
[pressure_z_comp]
type = DifferencePostprocessor
value1 = pressure_z_6
value2 = pressure_z_5
[]
[]
(test/tests/transfers/nek_temperature/volume/nek.i)
dTv = 10
Tv = 5
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 1
[FieldTransfers]
[temperature]
type = NekFieldVariable
direction = to_nek
usrwrk_slot = 0
[]
[nek_temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[]
[Dimensionalize]
dT = ${dTv}
T = ${Tv}
[]
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[ICs]
[tv]
type = FunctionIC
variable = temperature
function = tv
[]
[]
[Functions]
[tv] # temperature, dimensional
type = ParsedFunction
expression = 'sin(x)'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[Quadrature]
type = GAUSS_LOBATTO
order = FIRST
[]
[]
[AuxVariables]
[d]
[]
[]
[AuxKernels]
[d]
type = ParsedAux
variable = d
expression = 'nek_temp - temperature'
coupled_variables = 'nek_temp temperature'
[]
[]
[Postprocessors]
[max_error]
type = ElementExtremeValue
variable = d
[]
[]
[Outputs]
csv = true
[]
(test/tests/conduction/nonidentical_volume/cylinder/nek.i)
[Problem]
type = NekRSProblem
casename = 'cylinder'
n_usrwrk_slots = 1
[FieldTransfers]
[heat_source]
type = NekVolumetricSource
usrwrk_slot = 0
direction = to_nek
postprocessor_to_conserve = source_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
order = SECOND
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[avg_T_volume]
type = NekVolumeAverage
field = temperature
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
(test/tests/nek_temp/second_order/nek_volume.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[FieldTransfers]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
order = SECOND
volume = true
[]
[AuxVariables]
[analytic]
[]
[error_temp]
order = CONSTANT
family = MONOMIAL
[]
[difference]
[]
[]
[ICs]
[analytic]
type = FunctionIC
variable = analytic
function = analytic
[]
[]
[AuxKernels]
[error_temp]
type = ElementL2ErrorFunctionAux
variable = error_temp
coupled_variable = temp
function = analytic
[]
[difference]
type = ParsedAux
variable = difference
coupled_variables = 'analytic temp'
expression = 'temp-analytic'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Functions]
[analytic]
type = ParsedFunction
expression = 'exp(x)+sin(y)+x*y*z'
[]
[]
[Postprocessors]
[l2_error_in_nek_temp]
type = ElementL2Error
variable = temp
function = analytic
[]
[max_diff]
type = NodalExtremeValue
variable = difference
value_type = max
[]
[min_diff]
type = NodalExtremeValue
variable = difference
value_type = min
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
(tutorials/subchannel/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[FieldTransfers]
[temperature]
type = NekFieldVariable
direction = from_nek
[]
[velocity_x]
type = NekFieldVariable
direction = from_nek
[]
[velocity_y]
type = NekFieldVariable
direction = from_nek
[]
[velocity_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[subchannel_gap_binning]
type = HexagonalSubchannelGapBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 7
[]
[average_T]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = temperature
map_space_by_qp = true
[]
[average_T_gaps]
type = NekBinnedPlaneAverage
bins = 'subchannel_gap_binning axial_binning'
field = temperature
map_space_by_qp = true
gap_thickness = ${fparse 0.05 * 7.646e-3}
[]
[avg_gap_velocity]
type = NekBinnedPlaneAverage
bins = 'subchannel_gap_binning axial_binning'
field = velocity_component
velocity_component = normal
map_space_by_qp = true
gap_thickness = ${fparse 0.05 * 7.646e-3}
[]
[]
[AuxVariables]
# These are just for visualizing the average velocity component with Glyphs in paraview;
# the result of the 'avg_gap_velocity' user object will be represented as a vector "uo_" with 3 components
[uo_x]
family = MONOMIAL
order = CONSTANT
[]
[uo_y]
family = MONOMIAL
order = CONSTANT
[]
[uo_z]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[uo_x]
type = NekSpatialBinComponentAux
variable = uo_x
user_object = avg_gap_velocity
component = 0
[]
[uo_y]
type = NekSpatialBinComponentAux
variable = uo_y
user_object = avg_gap_velocity
component = 1
[]
[uo_z]
type = NekSpatialBinComponentAux
variable = uo_z
user_object = avg_gap_velocity
component = 2
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel.i'
execute_on = timestep_end
sub_cycling = true
[]
[subchannel_gap]
type = TransientMultiApp
input_files = 'subchannel_gap.i'
execute_on = timestep_end
sub_cycling = true
[]
[]
[Transfers]
[uo_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = average_T
to_multi_app = subchannel
variable = average_T
[]
[uo_to_sub2]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = average_T_gaps
to_multi_app = subchannel_gap
variable = average_T
[]
[uo1_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_gap_velocity
to_multi_app = subchannel_gap
variable = avg_gap_velocity
[]
[uox_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel_gap
source_variable = uo_x
variable = uo_x
[]
[uoy_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel_gap
source_variable = uo_y
variable = uo_y
[]
[]
[VectorPostprocessors]
[avg_T]
type = SpatialUserObjectVectorPostprocessor
userobject = average_T
[]
[avg_T_gaps]
type = SpatialUserObjectVectorPostprocessor
userobject = average_T_gaps
[]
[avg_v_gaps]
type = SpatialUserObjectVectorPostprocessor
userobject = avg_gap_velocity
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
[]
(test/tests/nek_mesh/sidesets/cube/nek_volume.i)
[Problem]
type = NekRSProblem
casename = 'cube'
[]
[Mesh]
type = NekRSMesh
order = SECOND
volume = true
boundary = '1 2 3 4 5 6'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[area_side1_nek]
type = NekSideIntegral
field = unity
boundary = '1'
[]
[area_side1_moose]
type = AreaPostprocessor
boundary = '1'
[]
[area_side2_nek]
type = NekSideIntegral
field = unity
boundary = '2'
[]
[area_side2_moose]
type = AreaPostprocessor
boundary = '2'
[]
[area_side3_nek]
type = NekSideIntegral
field = unity
boundary = '3'
[]
[area_side3_moose]
type = AreaPostprocessor
boundary = '3'
[]
[area_side4_nek]
type = NekSideIntegral
field = unity
boundary = '4'
[]
[area_side4_moose]
type = AreaPostprocessor
boundary = '4'
[]
[area_side5_nek]
type = NekSideIntegral
field = unity
boundary = '5'
[]
[area_side5_moose]
type = AreaPostprocessor
boundary = '5'
[]
[area_side6_nek]
type = NekSideIntegral
field = unity
boundary = '6'
[]
[area_side6_moose]
type = AreaPostprocessor
boundary = '6'
[]
[]
(test/tests/userobjects/volume/dimensional/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[AuxVariables]
[avg_T]
family = MONOMIAL
order = CONSTANT
[]
[avg_p]
family = MONOMIAL
order = CONSTANT
[]
[avg_v]
family = MONOMIAL
order = CONSTANT
[]
[integral_T]
family = MONOMIAL
order = CONSTANT
[]
[integral_p]
family = MONOMIAL
order = CONSTANT
[]
[integral_v]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[avg_T]
type = SpatialUserObjectAux
variable = avg_T
user_object = avg_T
[]
[avg_p]
type = SpatialUserObjectAux
variable = avg_p
user_object = avg_p
[]
[avg_v]
type = SpatialUserObjectAux
variable = avg_v
user_object = avg_v
[]
[integral_T]
type = SpatialUserObjectAux
variable = integral_T
user_object = integral_T
[]
[integral_p]
type = SpatialUserObjectAux
variable = integral_p
user_object = integral_p
[]
[integral_v]
type = SpatialUserObjectAux
variable = integral_v
user_object = integral_v
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[avg_T]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = temperature
[]
[avg_p]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = pressure
[]
[avg_v]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = velocity
[]
[integral_T]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = temperature
[]
[integral_p]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = pressure
[]
[integral_v]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = velocity
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel.i'
execute_on = timestep_end
[]
[]
[Transfers]
[uo1_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_T
to_multi_app = subchannel
variable = avg_T
[]
[uo2_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_p
to_multi_app = subchannel
variable = avg_p
[]
[uo3_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_v
to_multi_app = subchannel
variable = avg_v
[]
[uo4_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_T
to_multi_app = subchannel
variable = integral_T
[]
[uo5_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_p
to_multi_app = subchannel
variable = integral_p
[]
[uo6_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_v
to_multi_app = subchannel
variable = integral_v
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
file_base = nek_dim
[]
(test/tests/nek_file_output/nek_as_master_even/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/multiple_nek_apps/two_channels/nek.i)
[Mesh]
type = NekRSMesh
boundary = '1'
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'pin'
write_fld_files = true
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Postprocessors]
[max_T]
type = NekVolumeExtremeValue
field = temperature
[]
[avg_T]
type = NekVolumeAverage
field = temperature
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
csv = true
execute_on = 'final'
# just to make the gold files smaller
hide = 'avg_flux flux_integral'
[]
(test/tests/nek_errors/invalid_settings/nek_bc.i)
# The mesh file used for nekRS (brick.re2) has six sidesets numbered
# as 1, 2, 3, 4, 5, 6. In the nekRS input file (brick.par), we set
# these six boundaries to have insulated, insulated, specified flux,
# insulated, insulated, and insulated boundary conditions, respectively.
# Based on the data transfers assumed in/out from nekRS, we should throw
# an error if a flux boundary condition is not specified on the boundary
# we set for NekRSMesh, because otherwise that heat flux condition would
# never get used.
[Mesh]
type = NekRSMesh
boundary = '2'
[]
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 1
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(tutorials/pincell_multiphysics/nek.i)
inlet_T = 573.0 # inlet temperature
power = 250 # total power (W)
Re = 500.0 # Reynolds number
pin_diameter = 0.97e-2 # pin outer diameter
pin_pitch = 1.28e-2 # pin pitch
mu = 8.8e-5 # fluid dynamic viscosity
rho = 723.6 # fluid density
Cp = 5512.0 # fluid isobaric specific heat capacity
flow_area = ${fparse pin_pitch * pin_pitch - pi * pin_diameter * pin_diameter / 4.0}
wetted_perimeter = ${fparse pi * pin_diameter}
hydraulic_diameter = ${fparse 4.0 * flow_area / wetted_perimeter}
U_ref = ${fparse Re * mu / rho / hydraulic_diameter}
mdot = ${fparse rho * U_ref * flow_area}
dT = ${fparse power / mdot / Cp}
[Mesh]
type = NekRSMesh
boundary = '1'
scaling = ${hydraulic_diameter}
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'fluid'
n_usrwrk_slots = 1
[Dimensionalize]
L = ${hydraulic_diameter}
T = ${inlet_T}
U = ${U_ref}
dT = ${dT}
rho = ${rho}
Cp = ${Cp}
[]
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[temperature]
type = NekFieldVariable
direction = from_nek
[]
[]
synchronization_interval = parent_app
[]
[Postprocessors]
[outlet_T]
type = NekMassFluxWeightedSideAverage
field = temperature
boundary = '3'
[]
[max_T]
type = NekVolumeExtremeValue
field = temperature
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
interval = 10
[]
(test/tests/userobjects/interval/nek_synchronization.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[Dimensionalize]
L = 2.0
U = 1.0
rho = 834.5
Cp = 1228.0
T = 573.0
dT = 10.0
[]
synchronization_interval = constant
constant_interval = 3
[FieldTransfers]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 2.0
[]
[Postprocessors]
[vz_in]
type = SideAverageValue
variable = vel_z
boundary = '1'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
[]
(doc/content/source/problems/smallest_input.i)
[Problem]
type = NekRSProblem
casename = 'fluid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2'
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(tutorials/nek_stochastic/nek.i)
[Mesh]
type = NekRSMesh
boundary = '5'
[]
[Problem]
type = NekRSProblem
casename = 'channel'
n_usrwrk_slots = 2
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[temperature]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[ScalarTransfers]
[k]
type = NekScalarValue
direction = to_nek
usrwrk_slot = 1
output_postprocessor = k_from_stm
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_temp]
type = NekVolumeExtremeValue
field = temperature
[]
[k_from_stm] # this will just print to the screen the value of k received
type = Receiver
[]
[expect_max_T]
type = ParsedPostprocessor
function = '1000.0 / k_from_stm + 500.0'
pp_names = k_from_stm
[]
[]
[Outputs]
csv = true
hide = 'flux_integral'
[]
[Controls]
[stm]
type = SamplerReceiver
[]
[]
(test/tests/nek_stochastic/nek_multi.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'ethier'
n_usrwrk_slots = 2
[FieldTransfers]
[scalar02]
type = NekFieldVariable
direction = from_nek
[]
[]
[ScalarTransfers]
[scalar1]
type = NekScalarValue
direction = to_nek
usrwrk_slot = 0
output_postprocessor = s1
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Postprocessors]
[s1]
type = Receiver
[]
# we use the stochastic value to set the scalar (in the .udf files). Here,
# we are checking that the value of the scalar everywhere is equation to the 's1' postprocessor
[max_scalar]
type = ElementExtremeValue
variable = scalar02
value_type = max
[]
[min_scalar]
type = ElementExtremeValue
variable = scalar02
value_type = min
[]
[]
[Outputs]
csv = true
[]
(test/tests/conduction/identical_volume/cube/nek.i)
[Problem]
type = NekRSProblem
casename = 'cube'
n_usrwrk_slots = 2
[FieldTransfers]
[heat_source]
type = NekVolumetricSource
direction = to_nek
postprocessor_to_conserve = source_integral
usrwrk_slot = 0
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
order = SECOND
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[flux_out]
type = NekHeatFluxIntegral
boundary = '1 2 3 4 5 6'
[]
[max_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[avg_T_volume]
type = NekVolumeIntegral
field = temperature
[]
[avg_T_back]
type = NekSideAverage
field = temperature
boundary = '6'
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
# for this tests purposes, we only want to check temperature. This keeps the gold file smaller
hide = 'heat_source'
[]
(test/tests/userobjects/hexagonal_gap_layered/user_component.i)
gap_thickness = ${fparse 0.05 * 7.646e-3}
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[FieldTransfers]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[AuxVariables]
[velocity_component]
[]
# These are just for visualizing the average velocity component with Glyphs in paraview;
# the result of the 'vol_avg' user object will be represented as a vector "uo_" with 3 components
[uo_x]
family = MONOMIAL
order = CONSTANT
[]
[uo_y]
family = MONOMIAL
order = CONSTANT
[]
[uo_z]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[velocity_component] # actual velocity component computed directly from interpolated nekRS velocity fields
type = ParsedAux
variable = velocity_component
expression = '(0.1*vel_x+0.2*vel_y+0.3*vel_z)/sqrt(0.1*0.1+0.2*0.2+0.3*0.3)'
coupled_variables = 'vel_x vel_y vel_z'
execute_on = 'timestep_end nonlinear linear'
[]
[uo_x]
type = NekSpatialBinComponentAux
variable = uo_x
user_object = avg_velocity_component
component = 0
[]
[uo_y]
type = NekSpatialBinComponentAux
variable = uo_y
user_object = avg_velocity_component
component = 1
[]
[uo_z]
type = NekSpatialBinComponentAux
variable = uo_z
user_object = avg_velocity_component
component = 2
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelGapBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[avg_velocity_component]
type = NekBinnedPlaneAverage
bins = 'subchannel_binning axial_binning'
field = velocity_component
velocity_component = user
velocity_direction = '0.1 0.2 0.3'
gap_thickness = ${gap_thickness}
map_space_by_qp = true
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel_b.i'
execute_on = timestep_end
[]
[]
[Transfers]
[uo1_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_velocity_component
to_multi_app = subchannel
variable = avg_velocity_component
[]
[uox_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
source_variable = uo_x
variable = uo_x
[]
[uoy_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
source_variable = uo_y
variable = uo_y
[]
[uoz_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
source_variable = uo_z
variable = uo_z
[]
[actual_velocity_component]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
source_variable = velocity_component
variable = velocity_component
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/postprocessors/nek_volume_integral/nondimensional.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 4
[Dimensionalize]
L = 2
U = 0.2
T = 10
dT = 100
s01 = 15
ds01 = 150
s02 = 20
ds02 = 200
s03 = 30
ds03 = 300
rho = 1000
Cp = 4000
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 2
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[unity_int]
type = NekVolumeIntegral
field = unity
[]
[temp_int]
type = NekVolumeIntegral
field = temperature
[]
[u00_int]
type = NekVolumeIntegral
field = usrwrk00
[]
[u01_int]
type = NekVolumeIntegral
field = usrwrk01
[]
[u02_int]
type = NekVolumeIntegral
field = usrwrk02
[]
[s01_int]
type = NekVolumeIntegral
field = scalar01
[]
[s02_int]
type = NekVolumeIntegral
field = scalar02
[]
[s03_int]
type = NekVolumeIntegral
field = scalar03
[]
[pressure_int]
type = NekVolumeIntegral
field = pressure
[]
[velocity_int]
type = NekVolumeIntegral
field = velocity
[]
[x_velocity_int]
type = NekVolumeIntegral
field = velocity_x
[]
[y_velocity_int]
type = NekVolumeIntegral
field = velocity_y
[]
[z_velocity_int]
type = NekVolumeIntegral
field = velocity_z
[]
[x2_velocity_int]
type = NekVolumeIntegral
field = velocity_x_squared
[]
[y2_velocity_int]
type = NekVolumeIntegral
field = velocity_y_squared
[]
[z2_velocity_int]
type = NekVolumeIntegral
field = velocity_z_squared
[]
[velocity_component]
type = NekVolumeIntegral
field = velocity_component
velocity_direction = '0.1 0.2 -0.3'
[]
[]
(test/tests/nek_mesh/sidesets/pyramid/nek_volume.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
order = FIRST
volume = true
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[area_side1_nek]
type = NekSideIntegral
field = unity
boundary = '1'
[]
[area_side1_moose]
type = AreaPostprocessor
boundary = '1'
[]
[area_side2_nek]
type = NekSideIntegral
field = unity
boundary = '2'
[]
[area_side2_moose]
type = AreaPostprocessor
boundary = '2'
[]
[area_side3_nek]
type = NekSideIntegral
field = unity
boundary = '3'
[]
[area_side3_moose]
type = AreaPostprocessor
boundary = '3'
[]
[area_side4_nek]
type = NekSideIntegral
field = unity
boundary = '4'
[]
[area_side4_moose]
type = AreaPostprocessor
boundary = '4'
[]
[area_side5_nek]
type = NekSideIntegral
field = unity
boundary = '5'
[]
[area_side5_moose]
type = AreaPostprocessor
boundary = '5'
[]
[area_side6_nek]
type = NekSideIntegral
field = unity
boundary = '6'
[]
[area_side6_moose]
type = AreaPostprocessor
boundary = '6'
[]
[area_side7_nek]
type = NekSideIntegral
field = unity
boundary = '7'
[]
[area_side7_moose]
type = AreaPostprocessor
boundary = '7'
[]
[area_side8_nek]
type = NekSideIntegral
field = unity
boundary = '8'
[]
[area_side8_moose]
type = AreaPostprocessor
boundary = '8'
[]
[]
(tutorials/fhr_reflector/cht/nek.i)
fluid_solid_interface = '1 2 7'
[Mesh]
type = NekRSMesh
boundary = ${fluid_solid_interface}
scaling = 0.006
[]
[Problem]
type = NekRSProblem
casename = 'fluid'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[]
[Dimensionalize]
U = 0.0575
T = 923.15
dT = 10.0
L = 0.006
rho = 1962.13
Cp = 2416.0
[]
[]
[Executioner]
type = Transient
timestep_tolerance = 1e-9
[./TimeStepper]
type = NekTimeStepper
[../]
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[boundary_flux]
type = NekHeatFluxIntegral
boundary = ${fluid_solid_interface}
[]
[max_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[pressure_in]
type = NekSideAverage
field = pressure
boundary = '5'
[]
[mdot_in]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '5'
[]
[mdot_out]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '6'
[]
[]
(test/tests/userobjects/subchannel_layered/pin_1d.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[]
[AuxVariables]
[uo]
[]
[]
[AuxKernels]
[uo]
type = SpatialUserObjectAux
variable = uo
user_object = side_avg
boundary = '1'
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
pin_centered_bins = true
[]
[side_avg]
type = NekBinnedSideAverage
bins = 'subchannel_binning'
field = temperature
boundary = '1'
# for the peripheral region, we wont actually hit anything in this zone because we evaluate
# the user object on the pin surfaces
check_zero_contributions = false
[]
[]
[VectorPostprocessors]
# from_uo gives exactly the same results as manually specifying the points in 'manually_provided',
# but without the headache of figuring out what all the centroids of the pins are
[from_uo]
type = SpatialUserObjectVectorPostprocessor
userobject = side_avg
[]
[manually_provided]
type = SpatialUserObjectVectorPostprocessor
userobject = side_avg
points = ' 0.0 0.0 0.0
0.0044828 0.0077645 0.0
-0.0044828 0.0077645 0.0
-0.0089656 0.0 0.0
-0.0044828 -0.0077645 0.0
0.0044828 -0.0077645 0.0
0.0089656 0.0 0.0
1.0 0.0 0.0' # last point is just any point outside the pin area
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
csv = true
execute_on = 'final'
[]
(test/tests/postprocessors/nek_heat_flux_integral/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[flux_side1]
type = NekHeatFluxIntegral
boundary = '1'
[]
[flux_side2]
type = NekHeatFluxIntegral
boundary = '2'
[]
[flux_side3]
type = NekHeatFluxIntegral
boundary = '3'
[]
[flux_side4]
type = NekHeatFluxIntegral
boundary = '4'
[]
[flux_side5]
type = NekHeatFluxIntegral
boundary = '5'
[]
[flux_side6]
type = NekHeatFluxIntegral
boundary = '6'
[]
[flux_side7]
type = NekHeatFluxIntegral
boundary = '7'
[]
[flux_side8]
type = NekHeatFluxIntegral
boundary = '8'
[]
[]
(test/tests/deformation/nek_standalone/nek_boundary.i)
[Mesh]
type = NekRSMesh
boundary = '1 2 3'
[]
[Problem]
type = NekRSProblem
casename = 'mv_cyl'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[volume]
type = NekVolumeIntegral
field = unity
[]
[area]
type = NekSideIntegral
field = unity
boundary = '1 2 3'
[]
# these will not reflect the changing mesh, because we do not copy displacements
# from NekRS to MOOSE
[area_moose]
type = VolumePostprocessor
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
(test/tests/nek_output/bad_name.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_temp/second_order/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[FieldTransfers]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
order = SECOND
boundary = '1 2 3 4 5 6 7 8'
[]
[AuxVariables]
[analytic]
[]
[error_temp]
order = CONSTANT
family = MONOMIAL
[]
[difference]
[]
[avg_flux] # only here to avoid a re-gold; otherwise not necessary
order = SECOND
family = LAGRANGE
[]
[]
[ICs]
[analytic]
type = FunctionIC
variable = analytic
function = analytic
[]
[]
[AuxKernels]
[error_temp]
type = ElementL2ErrorFunctionAux
variable = error_temp
coupled_variable = temp
function = analytic
[]
[difference]
type = ParsedAux
variable = difference
coupled_variables = 'analytic temp'
expression = 'temp-analytic'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Functions]
[analytic]
type = ParsedFunction
expression = 'exp(x)+sin(y)+x*y*z'
[]
[]
[Postprocessors]
[l2_error_in_nek_temp]
type = ElementL2Error
variable = temp
function = analytic
[]
[max_diff]
type = NodalExtremeValue
variable = difference
value_type = max
[]
[min_diff]
type = NodalExtremeValue
variable = difference
value_type = min
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
(test/tests/deformation/nek_standalone/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'mv_cyl'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[volume]
type = NekVolumeIntegral
field = unity
[]
[area]
type = NekSideIntegral
field = unity
boundary = '1 2 3'
[]
# these will not reflect the changing mesh, because we do not copy displacements
# from NekRS to MOOSE
[volume_moose]
type = VolumePostprocessor
[]
[area_moose]
type = AreaPostprocessor
boundary = '1 2 3'
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
(test/tests/userobjects/subchannel_layered/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[]
[AuxVariables]
[subchannel_bins]
family = MONOMIAL
order = CONSTANT
[]
[axial_bins]
family = MONOMIAL
order = CONSTANT
[]
[total_volume]
family = MONOMIAL
order = CONSTANT
[]
[total_average_T]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[bins1]
type = SpatialUserObjectAux
variable = subchannel_bins
user_object = subchannel_binning
[]
[bins2]
type = SpatialUserObjectAux
variable = axial_bins
user_object = axial_binning
[]
[total_volume]
type = SpatialUserObjectAux
variable = total_volume
user_object = reference_vol_integral
execute_on = 'INITIAL TIMESTEP_END'
[]
[total_average_T]
type = SpatialUserObjectAux
variable = total_average_T
user_object = reference_T_avg
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[vol_avg]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = temperature
[]
[vol_integral]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = unity
[]
[one_bin]
type = LayeredBin
direction = z
num_layers = 1
[]
[reference_vol_integral]
type = NekBinnedVolumeIntegral
bins = 'one_bin'
field = unity
[]
[reference_T_avg]
type = NekBinnedVolumeAverage
bins = 'one_bin'
field = temperature
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel.i'
execute_on = timestep_end
[]
[]
[Transfers]
[uo1_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = vol_avg
to_multi_app = subchannel
variable = vol_avg
[]
[uo2_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = vol_integral
to_multi_app = subchannel
variable = vol_integral
[]
[]
[Postprocessors]
# we compare the integral (with a single bin) with an already-verified postprocessor
# to make sure the actual internals of the binned volume integral are done correctly
[volume_ref] # should match the value in 'total_volume' (computed with 1 bin)
type = NekVolumeIntegral
field = unity
[]
[avg_T_ref] # should match the value in 'total_average_T' (computed with 1 bin)
type = NekVolumeAverage
field = temperature
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/postprocessors/dimensionless_numbers/nondimensional/nek.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[Dimensionalize]
L = 0.25
U = 0.001
rho = 834.5
Cp = 1228.0
T = 573.0
dT = 10.0
[]
[]
[Mesh]
type = NekRSMesh
boundary = '3'
scaling = 0.25
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[Pe]
type = PecletNumber
boundary = '1'
[]
[Re]
type = ReynoldsNumber
boundary = '1'
[]
[area]
type = NekSideIntegral
field = unity
boundary = '1'
[]
[mdot]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '1'
[]
[inlet_v]
type = NekSideAverage
field = velocity
boundary = '1'
[]
[]
(test/tests/postprocessors/nek_usrwrk_boundary_integral/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[usrwrk]
type = NekUsrWrkBoundaryIntegral
usrwrk_slot = 11
boundary = '1'
[]
[]
(test/tests/userobjects/layered_layered/nek.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[Dimensionalize]
L = 2.0
U = 1.0
rho = 834.5
Cp = 1228.0
T = 573.0
dT = 10.0
[]
[FieldTransfers]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 2.0
[]
[AuxVariables]
[bin_volumes]
family = MONOMIAL
order = CONSTANT
[]
[avg_p]
family = MONOMIAL
order = CONSTANT
[]
[total_volume]
family = MONOMIAL
order = CONSTANT
[]
[total_average_p]
family = MONOMIAL
order = CONSTANT
[]
# just for visualization of the binning
[x_bins]
family = MONOMIAL
order = CONSTANT
[]
[y_bins]
family = MONOMIAL
order = CONSTANT
[]
[z_bins]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
# just for visualization of the binning
[x_bins]
type = SpatialUserObjectAux
variable = x_bins
user_object = x_bins
execute_on = INITIAL
[]
[y_bins]
type = SpatialUserObjectAux
variable = y_bins
user_object = y_bins
execute_on = INITIAL
[]
[z_bins]
type = SpatialUserObjectAux
variable = z_bins
user_object = z_bins
execute_on = INITIAL
[]
[bin_volumes]
type = SpatialUserObjectAux
variable = bin_volumes
user_object = vol_integral
execute_on = 'INITIAL TIMESTEP_END'
[]
[avg_p]
type = SpatialUserObjectAux
variable = avg_p
user_object = avg_p
execute_on = 'INITIAL TIMESTEP_END'
[]
[total_volume]
type = SpatialUserObjectAux
variable = total_volume
user_object = reference_vol_integral
execute_on = 'INITIAL TIMESTEP_END'
[]
[total_average_p]
type = SpatialUserObjectAux
variable = total_average_p
user_object = reference_pressure_avg
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[UserObjects]
[x_bins]
type = LayeredBin
direction = x
num_layers = 3
[]
[y_bins]
type = LayeredBin
direction = y
num_layers = 3
[]
[z_bins]
type = LayeredBin
direction = z
num_layers = 12
[]
[vol_integral]
type = NekBinnedVolumeIntegral
bins = 'x_bins y_bins z_bins'
field = unity
[]
[avg_p]
type = NekBinnedVolumeAverage
bins = 'x_bins y_bins z_bins'
field = pressure
[]
[one_bin]
type = LayeredBin
direction = z
num_layers = 1
[]
[reference_vol_integral]
type = NekBinnedVolumeIntegral
bins = 'one_bin'
field = unity
[]
[reference_pressure_avg]
type = NekBinnedVolumeAverage
bins = 'one_bin'
field = pressure
[]
[]
[Postprocessors]
# we compare the integral (with a single bin) with an already-verified postprocessor
# to make sure the actual internals of the binned volume integral are done correctly
[volume_ref] # should match the value in 'total_volume' (computed with 1 bin)
type = NekVolumeIntegral
field = unity
[]
[avg_p_ref] # should match the value in 'total_average_p' (computed with 1 bin)
type = NekVolumeAverage
field = pressure
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/userobjects/hexagonal_gap_layered/type_error.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[]
[AuxVariables]
[axial_bins]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[bins2]
type = SpatialUserObjectAux
variable = axial_bins
user_object = axial_binning
[]
[]
[UserObjects]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[vol_avg]
type = NekBinnedPlaneIntegral
bins = 'axial_binning'
field = unity
gap_thickness = 0.01
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_standalone/start_time/force_start.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
start_time = 1.0
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'initial timestep_begin'
[]
[]
(test/tests/postprocessors/nek_weighted_side_integral/nek.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[weighted_T_side1]
type = NekMassFluxWeightedSideIntegral
field = temperature
boundary = '1'
[]
[weighted_T_side2]
type = NekMassFluxWeightedSideIntegral
field = temperature
boundary = '2'
[]
[weighted_T_side3]
type = NekMassFluxWeightedSideIntegral
field = temperature
boundary = '3'
[]
[weighted_T_side4]
type = NekMassFluxWeightedSideIntegral
field = temperature
boundary = '4'
[]
[weighted_T_side5]
type = NekMassFluxWeightedSideIntegral
field = temperature
boundary = '5'
[]
[weighted_T_side6]
type = NekMassFluxWeightedSideIntegral
field = temperature
boundary = '6'
[]
[]
(test/tests/nek_standalone/ethier/nek.i)
[Mesh]
type = NekRSMesh
volume = true
order = SECOND
[]
[Problem]
type = NekRSProblem
casename = 'ethier'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[heat_flux]
type = NekHeatFluxIntegral
boundary = '1'
[]
# These postprocessors are just used to verify correct extraction of the
# NekRS solution, because we can directly compare against the values printed
# to stdout by NekRS
[max_Vx]
type = NodalExtremeValue
variable = vel_x
value_type = max
[]
[min_Vx]
type = NodalExtremeValue
variable = vel_x
value_type = min
[]
[max_Vy]
type = NodalExtremeValue
variable = vel_y
value_type = max
[]
[min_Vy]
type = NodalExtremeValue
variable = vel_y
value_type = min
[]
[max_Vz]
type = NodalExtremeValue
variable = vel_z
value_type = max
[]
[min_Vz]
type = NodalExtremeValue
variable = vel_z
value_type = min
[]
[max_p]
type = NodalExtremeValue
variable = P
value_type = max
[]
[min_p]
type = NodalExtremeValue
variable = P
value_type = min
[]
[max_T]
type = NodalExtremeValue
variable = temp
value_type = max
[]
[min_T]
type = NodalExtremeValue
variable = temp
value_type = min
[]
[]
[Outputs]
csv = true
exodus = true
execute_on = 'final'
[]
(test/tests/nek_file_output/nek_as_sub/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_errors/invalid_settings/timestepper.i)
[Mesh]
type = NekRSMesh
boundary = '3'
[]
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Executioner]
type = Transient
[]
(test/tests/postprocessors/dimensionless_numbers/dimensional/nek.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Mesh]
type = NekRSMesh
boundary = '3'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[Re]
type = ReynoldsNumber
L_ref = 0.25
boundary = '1'
[]
[Pe]
type = PecletNumber
L_ref = 0.25
boundary = '1'
[]
[area]
type = NekSideIntegral
field = unity
boundary = '1'
[]
[mdot]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '1'
[]
[inlet_v]
type = NekSideAverage
field = velocity
boundary = '1'
[]
[]
(tutorials/standalone/nek.i)
[Mesh]
type = NekRSMesh
volume = true
order = SECOND
[]
[Problem]
type = NekRSProblem
casename = 'turbPipe'
[FieldTransfers]
[pressure]
type = NekFieldVariable
direction = from_nek
[]
[velocity_x]
type = NekFieldVariable
direction = from_nek
[]
[velocity_y]
type = NekFieldVariable
direction = from_nek
[]
[velocity_z]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Postprocessors]
[outlet_p]
type = NekSideAverage
boundary = '2'
field = pressure
[]
[inlet_p]
type = NekSideAverage
boundary = '1'
field = pressure
[]
[mdot]
type = NekMassFluxWeightedSideIntegral
boundary = '1'
field = unity
[]
# subtracts the two pressure postprocessors
[dP]
type = DifferencePostprocessor
value1 = outlet_p
value2 = inlet_p
[]
[]
[UserObjects]
[axial_bins]
type = LayeredBin
direction = z
num_layers = 20
[]
[radial_bins]
type = RadialBin
vertical_axis = z
rmax = 0.5
nr = 12
growth_r = 0.9
[]
[volume_averages]
type = NekBinnedVolumeAverage
bins = 'radial_bins axial_bins'
field = velocity_z
map_space_by_qp = true
[]
[]
[AuxVariables]
[volume_averages]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[volume_averages]
type = SpatialUserObjectAux
variable = volume_averages
user_object = volume_averages
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
input_files = sub.i
execute_on = timestep_end
[]
[]
[Transfers]
[uo_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
to_multi_app = sub
source_user_object = volume_averages
variable = avg_velocity
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
csv = true
# this hides these values from the screen for neater output
hide = 'outlet_p inlet_p'
[]
(test/tests/conduction/identical_interface/pyramid/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '2'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_temp_nek]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_temp_nek]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[heat_flux]
type = NekHeatFluxIntegral
boundary = '2'
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
(test/tests/cht/sfr_pincell/nek_vpp.i)
[Problem]
type = NekRSProblem
casename = 'sfr_pin'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
postprocessor_to_conserve = flux_integral
conserve_flux_by_sideset = true
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[nek_flux]
type = NekHeatFluxIntegral
boundary = '1'
[]
[average_inlet_T]
type = NekSideAverage
field = temperature
boundary = '3'
execute_on = initial
[]
[average_outlet_T]
type = NekSideAverage
field = temperature
boundary = '4'
[]
[dT]
type = DifferencePostprocessor
value1 = average_outlet_T
value2 = average_inlet_T
[]
[inlet_mdot]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '3'
execute_on = initial
[]
# postprocessors for comparing against non-dimensional version in ../nondimensional
# --> uncomment in order to get the reference values that the nondimensional boundary coupling
# was verified against
#
# # side integral
# [area_1]
# type = NekSideIntegral
# field = unity
# boundary = '1'
# []
# [pressure_1]
# type = NekSideIntegral
# field = pressure
# boundary = '1'
# []
# [temperature_1]
# type = NekSideIntegral
# field = temperature
# boundary = '1'
# []
# # side average
# [avg_area_1]
# type = NekSideAverage
# field = unity
# boundary = '1'
# []
# [avg_pressure_1]
# type = NekSideAverage
# field = pressure
# boundary = '1'
# []
# [avg_temperature_1]
# type = NekSideAverage
# field = temperature
# boundary = '1'
# []
# # volume integral
# [volume]
# type = NekVolumeIntegral
# field = unity
# []
# [pressure_vol]
# type = NekVolumeIntegral
# field = pressure
# []
# [temperature_vol]
# type = NekVolumeIntegral
# field = temperature
# []
# # volume average
# [avg_volume]
# type = NekVolumeAverage
# field = unity
# []
# [avg_pressure_vol]
# type = NekVolumeAverage
# field = pressure
# []
# [avg_temperature_vol]
# type = NekVolumeAverage
# field = temperature
# []
# # heat flux integral
# [nek_flux]
# type = NekHeatFluxIntegral
# boundary = '1'
# []
# # mass flux weighted integral
# [inlet_mdot]
# type = NekMassFluxWeightedSideIntegral
# field = unity
# boundary = '3'
# execute_on = initial
# []
# [outlet_T]
# type = NekMassFluxWeightedSideIntegral
# field = temperature
# boundary = '4'
# []
# [inlet_P]
# type = NekMassFluxWeightedSideIntegral
# field = pressure
# boundary = '4'
# []
# # mass flux weighted integral
# [inlet_mdot_avg]
# type = NekMassFluxWeightedSideAverage
# field = unity
# boundary = '3'
# execute_on = initial
# []
# [outlet_T_avg]
# type = NekMassFluxWeightedSideAverage
# field = temperature
# boundary = '4'
# []
# [inlet_P_avg]
# type = NekMassFluxWeightedSideAverage
# field = pressure
# boundary = '4'
# []
# # extreme value postprocessors - VOLUME
# [max_T]
# type = NekVolumeExtremeValue
# field = temperature
# value_type = max
# []
# [min_T]
# type = NekVolumeExtremeValue
# field = temperature
# value_type = min
# []
# [max_p]
# type = NekVolumeExtremeValue
# field = pressure
# value_type = max
# []
# [min_p]
# type = NekVolumeExtremeValue
# field = pressure
# value_type = min
# []
# [max_1]
# type = NekVolumeExtremeValue
# field = unity
# value_type = max
# []
# [min_1]
# type = NekVolumeExtremeValue
# field = unity
# value_type = min
# []
# # extreme value postprocessors - SIDE
# [max_T_out]
# type = NekSideExtremeValue
# field = temperature
# boundary = '4'
# value_type = max
# []
# [min_T_out]
# type = NekSideExtremeValue
# field = temperature
# boundary = '4'
# value_type = min
# []
# [max_p_in]
# type = NekSideExtremeValue
# field = pressure
# boundary = '3'
# value_type = max
# []
# [min_p_in]
# type = NekSideExtremeValue
# field = pressure
# boundary = '3'
# value_type = min
# []
# [max_1_in]
# type = NekSideExtremeValue
# field = unity
# boundary = '3'
# value_type = max
# []
# [min_1_in]
# type = NekSideExtremeValue
# field = unity
# boundary = '3'
# value_type = min
# []
[]
[Outputs]
exodus = true
execute_on = 'final'
csv = true
[screen]
type = Console
hide = 'average_inlet_T average_outlet_T'
[]
[]
(test/tests/nek_temp/exact/exact.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[]
[]
[Mesh]
type = NekRSMesh
exact = true
boundary = '1'
[]
[AuxVariables]
[analytic]
[]
[error_temp]
order = CONSTANT
family = MONOMIAL
[]
[difference]
[]
[]
[ICs]
[analytic]
type = FunctionIC
variable = analytic
function = analytic
[]
[]
[AuxKernels]
[error_temp]
type = ElementL2ErrorFunctionAux
variable = error_temp
coupled_variable = temp
function = analytic
[]
[difference]
type = ParsedAux
variable = difference
coupled_variables = 'analytic temp'
expression = 'temp-analytic'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Functions]
[analytic]
type = ParsedFunction
expression = 'exp(x)+sin(y)+x*y*z'
[]
[]
[Postprocessors]
[l2_error_in_nek_temp]
type = ElementL2Error
variable = temp
function = analytic
[]
[max_diff]
type = NodalExtremeValue
variable = difference
value_type = max
[]
[min_diff]
type = NodalExtremeValue
variable = difference
value_type = min
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
hide = 'difference error_temp analytic'
[]
(tutorials/msfr/nek.i)
Re = 4.8e4 # (-)
mu = 0.011266321 # Pa-s
rho = 4147.3 # kg/m3
[Mesh]
type = NekRSMesh
volume = true
order = SECOND
[]
[Problem]
type = NekRSProblem
casename = 'msfr'
n_usrwrk_slots = 5
synchronization_interval = parent_app
[FieldTransfers]
[source]
type = NekVolumetricSource
direction = to_nek
usrwrk_slot = 0
[]
[temperature]
type = NekFieldVariable
direction = from_nek
[]
[]
[Dimensionalize]
L = 1.0
U = ${fparse Re * mu / rho}
T = ${fparse 625.0 + 273.15}
dT = 100.0
rho = ${rho}
Cp = 1524.86 # J/kg/K
[]
normalization_abs_tol = 1e6
normalization_rel_tol = 1e-3
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
min_dt = 1e-10
[]
[]
[Outputs]
exodus = true
hide = 'source_integral'
[]
(test/tests/auxkernels/heat_transfer_coefficient/nek.i)
[Problem]
type = NekRSProblem
casename = 'sfr_pin'
synchronization_interval = constant
constant_interval = 100
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
initial_flux_integral = 1000
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1'
[]
[UserObjects]
[axial]
type = LayeredBin
num_layers = 5
direction = z
[]
[q]
type = NekBinnedSideAverage
field = usrwrk00
bins = 'axial'
boundary = '1'
interval = 100
[]
[Tw]
type = NekBinnedSideAverage
field = temperature
bins = 'axial'
boundary = '1'
interval = 100
[]
[Tinf]
type = NekBinnedVolumeAverage
field = temperature
bins = 'axial'
interval = 100
[]
[]
[AuxVariables]
[h]
[]
[]
[AuxKernels]
[h]
type = HeatTransferCoefficientAux
variable = h
heat_flux = q
wall_T = Tw
bulk_T = Tinf
[]
[]
[ICs]
[avg_flux]
type = ConstantIC
variable = avg_flux
value = 10.0
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
# for the boundary mesh mirror, this is a boundary average integral
[avg_h_uo]
type = ElementAverageValue
variable = h
[]
[avg_wall_flux]
type = NekSideAverage
boundary = '1'
field = usrwrk00
[]
[avg_wall_T]
type = NekSideAverage
boundary = '1'
field = temperature
[]
[avg_bulk_T]
type = NekVolumeAverage
field = temperature
[]
[avg_h]
type = ParsedPostprocessor
expression = 'avg_wall_flux/(avg_wall_T-avg_bulk_T)'
pp_names = 'avg_wall_flux avg_wall_T avg_bulk_T'
[]
[]
[Outputs]
csv = true
time_step_interval = 100
hide = 'avg_flux_integral'
[]
(test/tests/nek_errors/deformation/user/nek.i)
[Mesh]
type = NekRSMesh
volume = true
boundary = '2'
parallel_type = replicated
[]
[Problem]
type = NekRSProblem
casename = 'user'
n_usrwrk_slots = 3
[FieldTransfers]
[disp]
type = NekMeshDeformation
direction = to_nek
usrwrk_slot = '0 1 2'
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_errors/invalid_settings/boundary_id.i)
# The mesh file used for nekRS (brick.re2) has six sidesets numbered
# as 1, 2, 3, 4, 5, 6. Trying to construct the surface mesh corresponding
# to boundary 8 (a non-existent boundary ID) should throw an error.
[Mesh]
type = NekRSMesh
boundary = 8
[]
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/conduction/zero_flux/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/nek_temp/exact/exact_volume.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[FieldTransfers]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
exact = true
volume = true
[]
[AuxVariables]
[analytic]
[]
[error_temp]
order = CONSTANT
family = MONOMIAL
[]
[difference]
[]
[]
[ICs]
[analytic]
type = FunctionIC
variable = analytic
function = analytic
[]
[]
[AuxKernels]
[error_temp]
type = ElementL2ErrorFunctionAux
variable = error_temp
coupled_variable = temp
function = analytic
[]
[difference]
type = ParsedAux
variable = difference
coupled_variables = 'analytic temp'
expression = 'temp-analytic'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Functions]
[analytic]
type = ParsedFunction
expression = 'exp(x)+sin(y)+x*y*z'
[]
[]
[Postprocessors]
[l2_error_in_nek_temp]
type = ElementL2Error
variable = temp
function = analytic
[]
[max_diff]
type = NodalExtremeValue
variable = difference
value_type = max
[]
[min_diff]
type = NodalExtremeValue
variable = difference
value_type = min
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
hide = 'difference error_temp analytic'
[]
(test/tests/userobjects/subchannel_layered/user_component.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[FieldTransfers]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[AuxVariables]
[velocity_component]
[]
# These are just for visualizing the average velocity component with Glyphs in paraview;
# the result of the 'vol_avg' user object will be represented as a vector "uo_" with 3 components
[uo_x]
family = MONOMIAL
order = CONSTANT
[]
[uo_y]
family = MONOMIAL
order = CONSTANT
[]
[uo_z]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[velocity_component] # actual velocity component computed directly from interpolated nekRS velocity fields
type = ParsedAux
variable = velocity_component
expression = '(0.1*vel_x-0.2*vel_y+0.3*vel_z)/sqrt(0.1*0.1+0.2*0.2+0.3*0.3)'
coupled_variables = 'vel_x vel_y vel_z'
execute_on = 'timestep_end nonlinear linear'
[]
[uo_x]
type = NekSpatialBinComponentAux
variable = uo_x
user_object = vol_avg
component = 0
[]
[uo_y]
type = NekSpatialBinComponentAux
variable = uo_y
user_object = vol_avg
component = 1
[]
[uo_z]
type = NekSpatialBinComponentAux
variable = uo_z
user_object = vol_avg
component = 2
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[vol_avg]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = velocity_component
velocity_component = user
velocity_direction = '0.1 -0.2 0.3'
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel_b.i'
execute_on = timestep_end
[]
[]
[Transfers]
[uo1_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = vol_avg
to_multi_app = subchannel
variable = vol_avg
[]
[uox_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
source_variable = uo_x
to_multi_app = subchannel
variable = uo_x
[]
[uoy_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
source_variable = uo_y
to_multi_app = subchannel
variable = uo_y
[]
[uoz_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
source_variable = uo_z
to_multi_app = subchannel
variable = uo_z
[]
[analytic_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
source_variable = velocity_component
to_multi_app = subchannel
variable = velocity_component
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
# unhide and turn the number of time steps in the .par file to greater than 1 in order to see this
# match the user object
hide = 'velocity_component'
[]
(test/tests/userobjects/side/nondimensional/nek.i)
[GlobalParams]
check_boundary_restricted = false
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 7.646e-3
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[Dimensionalize]
L = 7.646e-3
T = 100.0
dT = 50.0
U = 2.0
rho = 834.5
Cp = 1228.0
[]
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[AuxVariables]
[avg_T]
family = MONOMIAL
order = CONSTANT
[]
[avg_p]
family = MONOMIAL
order = CONSTANT
[]
[avg_v]
family = MONOMIAL
order = CONSTANT
[]
[integral_T]
family = MONOMIAL
order = CONSTANT
[]
[integral_p]
family = MONOMIAL
order = CONSTANT
[]
[integral_v]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[avg_T]
type = SpatialUserObjectAux
variable = avg_T
user_object = avg_T
boundary = '2'
[]
[avg_p]
type = SpatialUserObjectAux
variable = avg_p
user_object = avg_p
boundary = '2'
[]
[avg_v]
type = SpatialUserObjectAux
variable = avg_v
user_object = avg_v
boundary = '2'
[]
[integral_T]
type = SpatialUserObjectAux
variable = integral_T
user_object = integral_T
boundary = '2'
[]
[integral_p]
type = SpatialUserObjectAux
variable = integral_p
user_object = integral_p
boundary = '2'
[]
[integral_v]
type = SpatialUserObjectAux
variable = integral_v
user_object = integral_v
boundary = '2'
[]
[]
[UserObjects]
[x]
type = LayeredBin
direction = x
num_layers = 2
[]
[y]
type = LayeredBin
direction = y
num_layers = 2
[]
[z]
type = LayeredBin
direction = z
num_layers = 3
[]
[avg_T]
type = NekBinnedSideAverage
bins = 'x y z'
field = temperature
boundary = '2'
[]
[avg_p]
type = NekBinnedSideAverage
bins = 'x y z'
field = pressure
boundary = '2'
[]
[avg_v]
type = NekBinnedSideAverage
bins = 'x y z'
field = velocity
boundary = '2'
[]
[integral_T]
type = NekBinnedSideIntegral
bins = 'x y z'
field = temperature
boundary = '2'
[]
[integral_p]
type = NekBinnedSideIntegral
bins = 'x y z'
field = pressure
boundary = '2'
[]
[integral_v]
type = NekBinnedSideIntegral
bins = 'x y z'
field = velocity
boundary = '2'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/nek_errors/invalid_settings/mesh.i)
[Mesh]
type = GeneratedMesh
dim = 2
nx = 4
ny = 4
[]
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_standalone/adaptive_dt/nek_nondim.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[Dimensionalize]
U = 0.1
[]
[]
[Mesh]
type = NekRSMesh
scaling = 1.0
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'initial timestep_begin'
[]
[]
(test/tests/nek_stochastic/device/nek_multi.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 1
[ScalarTransfers]
[scalar1]
type = NekScalarValue
direction = to_nek
usrwrk_slot = 0
output_postprocessor = s1
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Postprocessors]
[s1]
type = Receiver
[]
# we use the stochastic value to set the boundary condition on temperature on sideset 1;
# we are checking that the value of the temperature on sideset 1 indeed matches that value
[max_on_side]
type = NekSideExtremeValue
field = temperature
boundary = '1'
value_type = max
[]
[min_on_side]
type = NekSideExtremeValue
field = temperature
boundary = '1'
value_type = min
[]
[]
[Outputs]
csv = true
[]
(test/tests/griffin_coupling/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_mesh/second_order/nek_volume.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
order = SECOND
volume = true
[]
# only here to avoid a re-gold
[Variables]
[dummy]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
# The points provided to these postprocessors are the centroids of the elements that
# we wish to print the node coordinates for.
[Postprocessors]
[num_elems]
type = NekMeshInfoPostprocessor
test_type = num_elems
[]
[num_nodes]
type = NekMeshInfoPostprocessor
test_type = num_nodes
[]
# coordinates of nodes of element 0
[elem0_node00_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 0
test_type = node_x
[]
[elem0_node00_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 0
test_type = node_y
[]
[elem0_node00_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 0
test_type = node_z
[]
[elem0_node01_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 1
test_type = node_x
[]
[elem0_node01_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 1
test_type = node_y
[]
[elem0_node01_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 1
test_type = node_z
[]
[elem0_node02_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 2
test_type = node_x
[]
[elem0_node02_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 2
test_type = node_y
[]
[elem0_node02_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 2
test_type = node_z
[]
[elem0_node03_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 3
test_type = node_x
[]
[elem0_node03_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 3
test_type = node_y
[]
[elem0_node03_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 3
test_type = node_z
[]
[elem0_node04_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 4
test_type = node_x
[]
[elem0_node04_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 4
test_type = node_y
[]
[elem0_node04_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 4
test_type = node_z
[]
[elem0_node05_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 5
test_type = node_x
[]
[elem0_node05_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 5
test_type = node_y
[]
[elem0_node05_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 5
test_type = node_z
[]
[elem0_node06_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 6
test_type = node_x
[]
[elem0_node06_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 6
test_type = node_y
[]
[elem0_node06_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 6
test_type = node_z
[]
[elem0_node07_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 7
test_type = node_x
[]
[elem0_node07_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 7
test_type = node_y
[]
[elem0_node07_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 7
test_type = node_z
[]
[elem0_node08_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 8
test_type = node_x
[]
[elem0_node08_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 8
test_type = node_y
[]
[elem0_node08_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 8
test_type = node_z
[]
[elem0_node09_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 9
test_type = node_x
[]
[elem0_node09_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 9
test_type = node_y
[]
[elem0_node09_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 9
test_type = node_z
[]
[elem0_node10_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 10
test_type = node_x
[]
[elem0_node10_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 10
test_type = node_y
[]
[elem0_node10_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 10
test_type = node_z
[]
[elem0_node11_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 11
test_type = node_x
[]
[elem0_node11_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 11
test_type = node_y
[]
[elem0_node11_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 11
test_type = node_z
[]
[elem0_node12_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 12
test_type = node_x
[]
[elem0_node12_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 12
test_type = node_y
[]
[elem0_node12_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 12
test_type = node_z
[]
[elem0_node13_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 13
test_type = node_x
[]
[elem0_node13_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 13
test_type = node_y
[]
[elem0_node13_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 13
test_type = node_z
[]
[elem0_node14_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 14
test_type = node_x
[]
[elem0_node14_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 14
test_type = node_y
[]
[elem0_node14_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 14
test_type = node_z
[]
[elem0_node15_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 15
test_type = node_x
[]
[elem0_node15_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 15
test_type = node_y
[]
[elem0_node15_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 15
test_type = node_z
[]
[elem0_node16_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 16
test_type = node_x
[]
[elem0_node16_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 16
test_type = node_y
[]
[elem0_node16_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 16
test_type = node_z
[]
[elem0_node17_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 17
test_type = node_x
[]
[elem0_node17_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 17
test_type = node_y
[]
[elem0_node17_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 17
test_type = node_z
[]
[elem0_node18_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 18
test_type = node_x
[]
[elem0_node18_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 18
test_type = node_y
[]
[elem0_node18_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 18
test_type = node_z
[]
[elem0_node19_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 19
test_type = node_x
[]
[elem0_node19_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 19
test_type = node_y
[]
[elem0_node19_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 19
test_type = node_z
[]
[elem0_node20_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 20
test_type = node_x
[]
[elem0_node20_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 20
test_type = node_y
[]
[elem0_node20_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 20
test_type = node_z
[]
[elem0_node21_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 21
test_type = node_x
[]
[elem0_node21_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 21
test_type = node_y
[]
[elem0_node21_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 21
test_type = node_z
[]
[elem0_node22_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 22
test_type = node_x
[]
[elem0_node22_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 22
test_type = node_y
[]
[elem0_node22_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 22
test_type = node_z
[]
[elem0_node23_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 23
test_type = node_x
[]
[elem0_node23_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 23
test_type = node_y
[]
[elem0_node23_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 23
test_type = node_z
[]
[elem0_node24_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 24
test_type = node_x
[]
[elem0_node24_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 24
test_type = node_y
[]
[elem0_node24_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 24
test_type = node_z
[]
[elem0_node25_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 25
test_type = node_x
[]
[elem0_node25_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 25
test_type = node_y
[]
[elem0_node25_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 25
test_type = node_z
[]
[elem0_node26_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 26
test_type = node_x
[]
[elem0_node26_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 26
test_type = node_y
[]
[elem0_node26_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 26
test_type = node_z
[]
[]
(test/tests/userobjects/sideset_layered/z_bins_by_centroid.i)
[GlobalParams]
check_boundary_restricted = false
map_space_by_qp = false
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[]
[AuxVariables]
[T1_bin3]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[T1_bin3]
type = SpatialUserObjectAux
variable = T1_bin3
user_object = T1_bin3
boundary = '1'
[]
[]
[UserObjects]
[z3]
type = LayeredBin
direction = z
num_layers = 3
[]
[T1_bin3]
type = NekBinnedSideIntegral
bins = 'z3'
field = temperature
boundary = '1'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[VectorPostprocessors]
[T]
type = SpatialUserObjectVectorPostprocessor
userobject = T1_bin3
[]
[]
[Outputs]
exodus = true
[]
(test/tests/nek_errors/invalid_field/nonlinear.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Variables]
[temp]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(tutorials/pebble_cht/nek.i)
[Mesh]
type = NekRSMesh
# This is the boundary we are coupling via conjugate heat transfer to MOOSE
boundary = '3'
[]
[Problem]
type = NekRSProblem
casename = 'pebble'
n_usrwrk_slots = 1
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[UserObjects]
[layered_bin]
type = LayeredBin
num_layers = 5
direction = z
[]
[wall_temp]
type = NekBinnedSideAverage
bins = 'layered_bin'
boundary = '3'
field = temperature
map_space_by_qp = true
interval = 10
[]
[bulk_temp]
type = NekBinnedVolumeAverage
bins = 'layered_bin'
field = temperature
map_space_by_qp = true
interval = 10
[]
[]
[VectorPostprocessors]
[wall]
type = SpatialUserObjectVectorPostprocessor
userobject = wall_temp
[]
[bulk]
type = SpatialUserObjectVectorPostprocessor
userobject = bulk_temp
[]
[]
[Outputs]
exodus = true
csv = true
interval = 10
hide = 'flux_integral'
[]
(test/tests/userobjects/layered_layered/duplicate_directions.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[Dimensionalize]
L = 2.0
U = 1.0
rho = 834.5
Cp = 1228.0
T = 573.0
dT = 10.0
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 2.0
[]
[UserObjects]
[x_bins]
type = LayeredBin
direction = x
num_layers = 3
[]
[y_bins]
type = LayeredBin
direction = y
num_layers = 3
[]
[x_bins2]
type = LayeredBin
direction = x
num_layers = 12
[]
# should error because weve specified two x-direction bins
[vol_integral]
type = NekBinnedVolumeIntegral
bins = 'x_bins y_bins x_bins2'
field = unity
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/conduction/nonidentical_interface/cylinders/nek_exact.i)
[Problem]
type = NekRSProblem
casename = 'cylinder'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
order = FIRST
exact = true
boundary = '2'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_temp_nek]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_temp_nek]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
(test/tests/userobjects/subchannel_layered/order_error.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[]
[UserObjects]
[vol_avg]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning'
field = temperature
[]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_errors/no_temp_solve/source.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 1
[FieldTransfers]
[source]
type = NekVolumetricSource
direction = to_nek
usrwrk_slot = 0
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/nek_file_output/nek_as_sub_even/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/cht/pebble/shift/nek.i)
[Mesh]
type = NekRSMesh
boundary = '1'
scaling = 100.0
[]
[Problem]
type = NekRSProblem
casename = 'onepebble2'
n_usrwrk_slots = 2
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 1
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
csv = true
[]
[Postprocessors]
[flux_in_nek]
type = NekHeatFluxIntegral
boundary = '1'
[]
[max_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[]
(tutorials/sfr_7pin/nek_vpp.i)
[Mesh]
type = NekRSMesh
boundary = '1 4'
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
synchronization_interval = parent_app
n_usrwrk_slots = 1
[FieldTransfers]
[heat_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
conserve_flux_by_sideset = true
[]
[temperature]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
[Postprocessors]
[pin_flux_in_nek]
type = NekHeatFluxIntegral
boundary = '1'
[]
[duct_flux_in_nek]
type = NekHeatFluxIntegral
boundary = '4'
[]
[max_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[]
(test/tests/postprocessors/nek_weighted_side_average/nek.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[mdot_side1]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '1'
[]
[mdot_side2]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '2'
[]
[mdot_side3]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '3'
[]
[mdot_side4]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '4'
[]
[mdot_side5]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '5'
[]
[mdot_side6]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '6'
[]
[weighted_T_side1]
type = NekMassFluxWeightedSideAverage
field = temperature
boundary = '1'
[]
[weighted_T_side2]
type = NekMassFluxWeightedSideAverage
field = temperature
boundary = '2'
[]
[weighted_T_side3]
type = NekMassFluxWeightedSideAverage
field = temperature
boundary = '3'
[]
[weighted_T_side4]
type = NekMassFluxWeightedSideAverage
field = temperature
boundary = '4'
[]
[weighted_T_side5]
type = NekMassFluxWeightedSideAverage
field = temperature
boundary = '5'
[]
[weighted_T_side6]
type = NekMassFluxWeightedSideAverage
field = temperature
boundary = '6'
[]
[]
(test/tests/conduction/reverse_cht/nek.i)
[Problem]
type = NekRSProblem
casename = 'cube'
n_usrwrk_slots = 2
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = from_nek
[]
[temperature]
type = NekFieldVariable
direction = to_nek
usrwrk_slot = 1
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '4'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[interface_T]
type = NekSideAverage
field = temperature
boundary = '4'
[]
[]
[Outputs]
exodus = true
[]
(test/tests/userobjects/hexagonal_gap_layered/normals/nek_axial.i)
gap_thickness = ${fparse 0.05 * 7.646e-3}
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[FieldTransfers]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[AuxVariables]
# These are just for visualizing the average velocity component with Glyphs in paraview;
# the result of the 'vol_avg' user object will be represented as a vector "uo_" with 3 components
[uo_x]
family = MONOMIAL
order = CONSTANT
[]
[uo_y]
family = MONOMIAL
order = CONSTANT
[]
[uo_z]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[uo_x]
type = NekSpatialBinComponentAux
variable = uo_x
user_object = avg_velocity_component
component = 0
[]
[uo_y]
type = NekSpatialBinComponentAux
variable = uo_y
user_object = avg_velocity_component
component = 1
[]
[uo_z]
type = NekSpatialBinComponentAux
variable = uo_z
user_object = avg_velocity_component
component = 2
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredGapBin
direction = z
num_layers = 6
[]
[avg_velocity_component]
type = NekBinnedPlaneAverage
bins = 'subchannel_binning axial_binning'
field = velocity_component
velocity_component = normal
gap_thickness = ${gap_thickness}
map_space_by_qp = true
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel_axial.i'
execute_on = timestep_end
[]
[]
[Transfers]
[uox_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
source_variable = uo_x
variable = uo_x
[]
[uoy_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
source_variable = uo_y
variable = uo_y
[]
[uoz_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
source_variable = uo_z
variable = uo_z
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/nek_output/velocity.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[Dimensionalize]
U = 2.0
[]
[FieldTransfers]
[velocity]
type = NekFieldVariable
direction = from_nek
[]
[velocity_z_squared]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
[]
# dimensional form
[Functions]
[vx]
type = ParsedFunction
expression = 'sin(x)'
[]
[vy]
type = ParsedFunction
expression = '(y+1)*2'
[]
[vz]
type = ParsedFunction
expression = 'exp(x*y*z)*2'
[]
[v]
type = ParsedFunction
expression = 'sqrt(vx*vx+vy*vy+vz*vz)'
symbol_names = 'vx vy vz'
symbol_values = 'vx vy vz'
[]
[vz_2]
type = ParsedFunction
expression = 'vz*vz'
symbol_names = 'vz'
symbol_values = 'vz'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[Quadrature]
type = GAUSS_LOBATTO
order = FIRST
[]
[]
[Postprocessors]
[v_error]
type = ElementL1Error
variable = velocity
function = v
[]
[vz_2_error]
type = ElementL1Error
variable = velocity_z_squared
function = vz_2
[]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/nek_errors/no_temp_var/source.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 1
[FieldTransfers]
[heat]
type = NekVolumetricSource
direction = to_nek
usrwrk_slot = 0
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/nek_standalone/ktauChannel/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'channel'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[max_T]
type = NekVolumeExtremeValue
field = temperature
[]
[T_at_point]
type = PointValue
variable = temp
point = '4.0 -0.5 0.0'
[]
[pct_change]
type = PercentChangePostprocessor
postprocessor = max_T
[]
[]
[UserObjects]
[layered_average]
type = LayeredAverage
direction = x
variable = P
num_layers = 4
[]
[]
[AuxVariables]
[layered_p]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[layered_p]
type = SpatialUserObjectAux
variable = layered_p
user_object = layered_average
[]
[]
(test/tests/nek_errors/no_occa_source_kernel/nek.i)
[Problem]
type = NekRSProblem
casename = 'cube'
n_usrwrk_slots = 2
[FieldTransfers]
[heat_source]
type = NekVolumetricSource
usrwrk_slot = 1
direction = to_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/nek_mesh/sidesets/pyramid/exact_volume.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
volume = true
exact = true
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
file_base = 'nek_volume_out'
[]
[Postprocessors]
[area_side1_nek]
type = NekSideIntegral
field = unity
boundary = '1'
[]
[area_side1_moose]
type = AreaPostprocessor
boundary = '1'
[]
[area_side2_nek]
type = NekSideIntegral
field = unity
boundary = '2'
[]
[area_side2_moose]
type = AreaPostprocessor
boundary = '2'
[]
[area_side3_nek]
type = NekSideIntegral
field = unity
boundary = '3'
[]
[area_side3_moose]
type = AreaPostprocessor
boundary = '3'
[]
[area_side4_nek]
type = NekSideIntegral
field = unity
boundary = '4'
[]
[area_side4_moose]
type = AreaPostprocessor
boundary = '4'
[]
[area_side5_nek]
type = NekSideIntegral
field = unity
boundary = '5'
[]
[area_side5_moose]
type = AreaPostprocessor
boundary = '5'
[]
[area_side6_nek]
type = NekSideIntegral
field = unity
boundary = '6'
[]
[area_side6_moose]
type = AreaPostprocessor
boundary = '6'
[]
[area_side7_nek]
type = NekSideIntegral
field = unity
boundary = '7'
[]
[area_side7_moose]
type = AreaPostprocessor
boundary = '7'
[]
[area_side8_nek]
type = NekSideIntegral
field = unity
boundary = '8'
[]
[area_side8_moose]
type = AreaPostprocessor
boundary = '8'
[]
[]
(test/tests/nek_stochastic/quiet_init/nek_multi.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'ethier'
n_usrwrk_slots = 2
[ScalarTransfers]
[scalar1]
type = NekScalarValue
direction = to_nek
usrwrk_slot = 0
output_postprocessor = s1
[]
[]
[FieldTransfers]
[scalar02]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Controls]
[stochastic]
type = SamplerReceiver
[]
[]
[Postprocessors]
[s1]
type = Receiver
[]
# we use the stochastic value to set the scalar (in the .udf files). Here,
# we are checking that the value of the scalar everywhere is equation to the 's1' postprocessor
[max_scalar]
type = ElementExtremeValue
variable = scalar02
value_type = max
[]
[min_scalar]
type = ElementExtremeValue
variable = scalar02
value_type = min
[]
[]
[Outputs]
csv = true
[]
(test/tests/nek_standalone/from_restart/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[temp_average]
type = NekVolumeAverage
field = temperature
[]
[velocity_average]
type = NekVolumeAverage
field = velocity
[]
[x_velocity_average]
type = NekVolumeAverage
field = velocity_x
[]
[y_velocity_average]
type = NekVolumeAverage
field = velocity_y
[]
[z_velocity_average]
type = NekVolumeAverage
field = velocity_z
[]
[]
(test/tests/userobjects/sideset_layered/invalid_boundary.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[]
[UserObjects]
[x]
type = LayeredBin
direction = x
num_layers = 3
[]
[vol_avg]
type = NekBinnedSideIntegral
bins = 'x'
field = temperature
boundary = '5'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_errors/invalid_bid_postprocessor/nek.i)
# The mesh file used for nekRS (brick.re2) has six sidesets numbered
# as 1, 2, 3, 4, 5, 6. Trying to construct the surface mesh corresponding
# to boundary 8 (a non-existent boundary ID) should throw an error.
[Mesh]
type = NekRSMesh
boundary = 1
[]
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[area_side]
type = NekSideIntegral
field = temperature
boundary = 8
[]
[]
(test/tests/nek_errors/usrwrk_transfers/source.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 3
[FieldTransfers]
[source]
type = NekVolumetricSource
direction = to_nek
usrwrk_slot = '1 2'
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/auxkernels/nek_spatial_bin_component_aux/invalid_field.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[AuxVariables]
[uo]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[uo]
type = NekSpatialBinComponentAux
variable = uo
user_object = vol_integral
component = 0
[]
[]
[UserObjects]
[x_bins]
type = LayeredBin
direction = x
num_layers = 3
[]
[vol_integral]
type = NekBinnedVolumeIntegral
bins = 'x_bins'
field = pressure
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_errors/invalid_field/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max]
type = NekVolumeExtremeValue
field = temperature
[]
[]
(test/tests/nek_errors/mpi_setup_multiple_inputs/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_output/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[FieldTransfers]
[scalar01]
type = NekFieldVariable
direction = from_nek
[]
[scalar02]
type = NekFieldVariable
direction = from_nek
[]
[scalar03]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Functions]
[s01]
type = ParsedFunction
expression = 'sin(x)'
[]
[s02]
type = ParsedFunction
expression = 'y+1'
[]
[s03]
type = ParsedFunction
expression = 'exp(x*y*z)'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[Quadrature]
type = GAUSS_LOBATTO
order = FIRST
[]
[]
[Postprocessors]
[s01_error]
type = ElementL1Error
variable = scalar01
function = s01
[]
[s02_error]
type = ElementL1Error
variable = scalar02
function = s02
[]
[s03_error]
type = ElementL1Error
variable = scalar03
function = s03
[]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/nek_stochastic/shift/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 3
[ScalarTransfers]
[s2]
type = NekScalarValue
direction = to_nek
value = 2.5
usrwrk_slot = 1
output_postprocessor = s2
[]
[s3]
type = NekScalarValue
direction = to_nek
value = 3.5
usrwrk_slot = 1
output_postprocessor = s3
[]
[]
[FieldTransfers]
[scalar01]
type = NekFieldVariable
direction = from_nek
[]
[scalar02]
type = NekFieldVariable
direction = from_nek
[]
[scalar03]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[s2]
type = Receiver
[]
[s3]
type = Receiver
[]
[max_scalar1]
type = NodalExtremeValue
variable = scalar01
value_type = max
[]
[min_scalar1]
type = NodalExtremeValue
variable = scalar01
value_type = min
[]
[max_scalar2]
type = NodalExtremeValue
variable = scalar02
value_type = max
[]
[min_scalar2]
type = NodalExtremeValue
variable = scalar02
value_type = min
[]
[max_scalar3]
type = NodalExtremeValue
variable = scalar03
value_type = max
[]
[min_scalar3]
type = NodalExtremeValue
variable = scalar03
value_type = min
[]
[]
[Outputs]
csv = true
[]
(test/tests/nek_errors/used_scratch/nek.i)
[Mesh]
type = NekRSMesh
boundary = '6'
[]
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
hide = 'flux_integral'
[]
(test/tests/nek_mesh/exact/exact.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Mesh]
type = NekRSMesh
exact = true
boundary = '1 3'
[]
(test/tests/nek_mesh/first_order/nek_volume.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
order = FIRST
volume = true
[]
# only here to avoid a re-gold
[Variables]
[dummy]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
# The points provided to these postprocessors are the centroids of the elements that
# we wish to print the node coordinates for.
[Postprocessors]
[num_elems]
type = NekMeshInfoPostprocessor
test_type = num_elems
[]
[num_nodes]
type = NekMeshInfoPostprocessor
test_type = num_nodes
[]
# coordinates of nodes of element 0
[elem0_node0_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 0
test_type = node_x
[]
[elem0_node0_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 0
test_type = node_y
[]
[elem0_node0_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 0
test_type = node_z
[]
[elem0_node1_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 1
test_type = node_x
[]
[elem0_node1_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 1
test_type = node_y
[]
[elem0_node1_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 1
test_type = node_z
[]
[elem0_node2_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 2
test_type = node_x
[]
[elem0_node2_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 2
test_type = node_y
[]
[elem0_node2_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 2
test_type = node_z
[]
[elem0_node3_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 3
test_type = node_x
[]
[elem0_node3_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 3
test_type = node_y
[]
[elem0_node3_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 3
test_type = node_z
[]
[elem0_node4_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 4
test_type = node_x
[]
[elem0_node4_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 4
test_type = node_y
[]
[elem0_node4_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 4
test_type = node_z
[]
[elem0_node5_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 5
test_type = node_x
[]
[elem0_node5_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 5
test_type = node_y
[]
[elem0_node5_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 5
test_type = node_z
[]
[elem0_node6_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 6
test_type = node_x
[]
[elem0_node6_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 6
test_type = node_y
[]
[elem0_node6_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 6
test_type = node_z
[]
[elem0_node7_x]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 7
test_type = node_x
[]
[elem0_node7_y]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 7
test_type = node_y
[]
[elem0_node7_z]
type = NekMeshInfoPostprocessor
point = '0.175440744 0.0370379974 0.445918094'
node = 7
test_type = node_z
[]
# coordinates of nodes of element 24
[elem24_node0_x]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 0
test_type = node_x
[]
[elem24_node0_y]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 0
test_type = node_y
[]
[elem24_node0_z]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 0
test_type = node_z
[]
[elem24_node1_x]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 1
test_type = node_x
[]
[elem24_node1_y]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 1
test_type = node_y
[]
[elem24_node1_z]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 1
test_type = node_z
[]
[elem24_node2_x]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 2
test_type = node_x
[]
[elem24_node2_y]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 2
test_type = node_y
[]
[elem24_node2_z]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 2
test_type = node_z
[]
[elem24_node3_x]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 3
test_type = node_x
[]
[elem24_node3_y]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 3
test_type = node_y
[]
[elem24_node3_z]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 3
test_type = node_z
[]
[elem24_node4_x]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 4
test_type = node_x
[]
[elem24_node4_y]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 4
test_type = node_y
[]
[elem24_node4_z]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 4
test_type = node_z
[]
[elem24_node5_x]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 5
test_type = node_x
[]
[elem24_node5_y]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 5
test_type = node_y
[]
[elem24_node5_z]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 5
test_type = node_z
[]
[elem24_node6_x]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 6
test_type = node_x
[]
[elem24_node6_y]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 6
test_type = node_y
[]
[elem24_node6_z]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 6
test_type = node_z
[]
[elem24_node7_x]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 7
test_type = node_x
[]
[elem24_node7_y]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 7
test_type = node_y
[]
[elem24_node7_z]
type = NekMeshInfoPostprocessor
point = '0.0562661952 -0.0652543308 0.41949849'
node = 7
test_type = node_z
[]
# coordinates of nodes of element 147
[elem147_node0_x]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 0
test_type = node_x
[]
[elem147_node0_y]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 0
test_type = node_y
[]
[elem147_node0_z]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 0
test_type = node_z
[]
[elem147_node1_x]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 1
test_type = node_x
[]
[elem147_node1_y]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 1
test_type = node_y
[]
[elem147_node1_z]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 1
test_type = node_z
[]
[elem147_node2_x]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 2
test_type = node_x
[]
[elem147_node2_y]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 2
test_type = node_y
[]
[elem147_node2_z]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 2
test_type = node_z
[]
[elem147_node3_x]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 3
test_type = node_x
[]
[elem147_node3_y]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 3
test_type = node_y
[]
[elem147_node3_z]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 3
test_type = node_z
[]
[elem147_node4_x]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 4
test_type = node_x
[]
[elem147_node4_y]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 4
test_type = node_y
[]
[elem147_node4_z]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 4
test_type = node_z
[]
[elem147_node5_x]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 5
test_type = node_x
[]
[elem147_node5_y]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 5
test_type = node_y
[]
[elem147_node5_z]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 5
test_type = node_z
[]
[elem147_node6_x]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 6
test_type = node_x
[]
[elem147_node6_y]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 6
test_type = node_y
[]
[elem147_node6_z]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 6
test_type = node_z
[]
[elem147_node7_x]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 7
test_type = node_x
[]
[elem147_node7_y]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 7
test_type = node_y
[]
[elem147_node7_z]
type = NekMeshInfoPostprocessor
point = '0.196111078 -0.0212007768 -0.00738034173'
node = 7
test_type = node_z
[]
[]
(test/tests/userobjects/subchannel_layered/duplicate_directions.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[x_bins]
type = LayeredBin
direction = x
num_layers = 3
[]
# should error due to duplicate bins
[vol_avg]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning x_bins'
field = temperature
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(tutorials/fhr_reflector/conduction/nek.i)
fluid_solid_interface = '1 2 7'
[Mesh]
type = NekRSMesh
boundary = ${fluid_solid_interface}
scaling = 0.006
[]
[Problem]
type = NekRSProblem
casename = 'fluid'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[]
[Dimensionalize]
U = 0.0575
T = 923.15
dT = 10.0
L = 0.006
rho = 1962.13
Cp = 2416.0
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[boundary_flux]
type = NekHeatFluxIntegral
boundary = ${fluid_solid_interface}
[]
[max_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[]
(test/tests/postprocessors/nek_volume_extrema/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[max_temp]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_temp]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[max_p]
type = NekVolumeExtremeValue
field = pressure
value_type = max
[]
[min_p]
type = NekVolumeExtremeValue
field = pressure
value_type = min
[]
[max_velocity]
type = NekVolumeExtremeValue
field = velocity
value_type = max
[]
[min_velocity]
type = NekVolumeExtremeValue
field = velocity
value_type = min
[]
[max_x_velocity]
type = NekVolumeExtremeValue
field = velocity_x
value_type = max
[]
[min_x_velocity]
type = NekVolumeExtremeValue
field = velocity_x
value_type = min
[]
[max_y_velocity]
type = NekVolumeExtremeValue
field = velocity_y
value_type = max
[]
[min_y_velocity]
type = NekVolumeExtremeValue
field = velocity_y
value_type = min
[]
[max_z_velocity]
type = NekVolumeExtremeValue
field = velocity_z
value_type = max
[]
[min_z_velocity]
type = NekVolumeExtremeValue
field = velocity_z
value_type = min
[]
[]
(test/tests/conduction/boundary_and_volume/prism/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 2
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
postprocessor_to_conserve = flux_integral
[]
[heat_source]
type = NekVolumetricSource
usrwrk_slot = 1
direction = to_nek
postprocessor_to_conserve = source_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
boundary = '2'
order = FIRST
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[avg_T_volume]
type = NekVolumeAverage
field = temperature
[]
[heat_flux]
type = NekHeatFluxIntegral
boundary = '2'
[]
[nek_min_1]
type = NekSideExtremeValue
field = temperature
boundary = '3'
value_type = min
[]
[nek_min_2]
type = NekSideExtremeValue
field = temperature
boundary = '4'
value_type = min
[]
[nek_min_3]
type = NekSideExtremeValue
field = temperature
boundary = '5'
value_type = min
[]
[nek_min_4]
type = NekSideExtremeValue
field = temperature
boundary = '6'
value_type = min
[]
[nek_max_1]
type = NekSideExtremeValue
field = temperature
boundary = '3'
[]
[nek_max_2]
type = NekSideExtremeValue
field = temperature
boundary = '4'
[]
[nek_max_3]
type = NekSideExtremeValue
field = temperature
boundary = '5'
[]
[nek_max_4]
type = NekSideExtremeValue
field = temperature
boundary = '6'
[]
[]
[Outputs]
exodus = true
interval = 30
hide = 'flux_integral source_integral'
[]
(tutorials/restart_nek_and_moose/read_from_checkpoints/nek.i)
[Problem]
type = NekRSProblem
casename = pyramid
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
input_files = 'cardinal_sub.i'
execute_on = 'timestep_begin'
[]
[]
(test/tests/deformation/mesh-velocity-areas/nek.i)
[Mesh]
type = NekRSMesh
order = SECOND
boundary = '2'
parallel_type = replicated
displacements = 'disp_x disp_y disp_z'
use_displaced_mesh =true
[]
[Problem]
type = NekRSProblem
casename = 'pipe'
n_usrwrk_slots = 4
[FieldTransfers]
[disp]
type = NekMeshDeformation
direction = to_nek
usrwrk_slot = '1 2 3'
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[Quadrature]
type = GAUSS_LOBATTO
order = SECOND
[]
[]
[Postprocessors]
[nek_area_initial]
type = NekSideIntegral
field = unity
boundary = '2'
execute_on = initial
[]
[nek_area]
type = NekSideIntegral
field = unity
boundary = '2'
[]
[nek_diff]
type = DifferencePostprocessor
value1 = nek_area
value2 = nek_area_initial
[]
[moose_area_initial]
type = VolumePostprocessor # for a side-only mesh, this is area
execute_on = initial
use_displaced_mesh = true
[]
[moose_area]
type = VolumePostprocessor
use_displaced_mesh = true
[]
[moose_diff]
type = DifferencePostprocessor
value1 = moose_area
value2 = moose_area_initial
[]
[]
[Outputs]
csv = true
execute_on = 'final'
hide = 'nek_area_initial nek_area moose_area_initial moose_area'
[]
(test/tests/nek_file_output/avg_plugin/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'turbPipe'
# we handle allocating from the udf
n_usrwrk_slots = 0
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_standalone/lowMach/nek_boundary.i)
[Mesh]
type = NekRSMesh
boundary = '1'
order = SECOND
[]
[Problem]
type = NekRSProblem
casename = 'lowMach'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_T_side]
type = NekSideExtremeValue
field = temperature
value_type = max
boundary = '1'
[]
[max_T_side_output]
type = NodalExtremeValue
variable = temp
value_type = max
[]
[max_T_side_diff]
type = DifferencePostprocessor
value1 = max_T_side
value2 = max_T_side_output
[]
[min_T_side]
type = NekSideExtremeValue
field = temperature
value_type = min
boundary = '1'
[]
[min_T_side_output]
type = NodalExtremeValue
variable = temp
value_type = min
[]
[min_T_side_diff]
type = DifferencePostprocessor
value1 = min_T_side
value2 = min_T_side_output
[]
[max_Vx_side]
type = NekSideExtremeValue
field = velocity_x
value_type = max
boundary = '1'
[]
[max_Vx_side_output]
type = NodalExtremeValue
variable = vel_x
value_type = max
[]
[max_Vx_side_diff]
type = DifferencePostprocessor
value1 = max_Vx_side
value2 = max_Vx_side_output
[]
[min_Vx_side]
type = NekSideExtremeValue
field = velocity_x
value_type = min
boundary = '1'
[]
[min_Vx_side_output]
type = NodalExtremeValue
variable = vel_x
value_type = min
[]
[min_Vx_side_diff]
type = DifferencePostprocessor
value1 = min_Vx_side
value2 = min_Vx_side_output
[]
[max_p_side]
type = NekSideExtremeValue
field = pressure
value_type = max
boundary = '1'
[]
[max_p_side_output]
type = NodalExtremeValue
variable = P
value_type = max
[]
[min_p_side_diff]
type = DifferencePostprocessor
value1 = min_p_side
value2 = min_p_side_output
[]
[min_p_side]
type = NekSideExtremeValue
field = pressure
value_type = min
boundary = '1'
[]
[min_p_side_output]
type = NodalExtremeValue
variable = P
value_type = min
[]
[max_p_side_diff]
type = DifferencePostprocessor
value1 = max_p_side
value2 = max_p_side_output
[]
[avg_T_side]
type = NekSideAverage
field = temperature
boundary = '1'
[]
[avg_T_side_output]
type = ElementAverageValue
variable = temp
[]
[avg_T_side_diff]
type = DifferencePostprocessor
value1 = avg_T_side
value2 = avg_T_side_output
[]
[avg_Vx_side]
type = NekSideAverage
field = velocity_x
boundary = '1'
[]
[avg_Vx_side_output]
type = ElementAverageValue
variable = vel_x
[]
[avg_Vx_side_diff]
type = DifferencePostprocessor
value1 = avg_Vx_side
value2 = avg_Vx_side_output
[]
[avg_p_side]
type = NekSideAverage
field = pressure
boundary = '1'
[]
[avg_p_side_output]
type = ElementAverageValue
variable = P
[]
[avg_p_side_diff]
type = DifferencePostprocessor
value1 = avg_p_side
value2 = avg_p_side_output
[]
[]
[Outputs]
csv = true
exodus = true
execute_on = 'final'
hide = 'max_Vx_side max_Vx_side_output max_p_side max_p_side_output min_Vx_side min_Vx_side_output min_p_side min_p_side_output avg_Vx_side avg_Vx_side_output avg_p_side avg_p_side_output max_T_side max_T_side_output min_T_side min_T_side_output avg_T_side avg_T_side_output'
[]
(test/tests/nek_errors/invalid_field/auxvar.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[AuxVariables]
[temp]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(tutorials/gas_compact_multiphysics/nek.i)
# copy-pasta from common_input.i
channel_diameter = 0.016 # diameter of the coolant channels (m)
height = 6.343 # height of the full core (m)
inlet_T = 598.0 # inlet fluid temperature (K)
power = 200e6 # full core power (W)
mdot = 117.3 # fluid mass flowrate (kg/s)
fluid_density = 5.5508 # fluid density (kg/m3)
fluid_Cp = 5189.0 # fluid isobaric specific heat (J/kg/K)
n_bundles = 12 # number of bundles in the full core
n_coolant_channels_per_block = 108 # number of coolant channels per assembly
unit_cell_height = 1.6 # unit cell height - arbitrarily selected
[Mesh]
type = NekRSMesh
boundary = '3'
volume = true
scaling = ${channel_diameter}
[]
[Problem]
type = NekRSProblem
casename = 'ranstube'
n_usrwrk_slots = 2
[Dimensionalize]
U = ${fparse mdot / (n_bundles * n_coolant_channels_per_block) / fluid_density / (pi * channel_diameter * channel_diameter / 4.0)}
T = ${inlet_T}
dT = ${fparse power / mdot / fluid_Cp * unit_cell_height / height}
L = ${channel_diameter}
rho = ${fluid_density}
Cp = ${fluid_Cp}
[]
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[temperature]
type = NekFieldVariable
direction = from_nek
[]
[]
synchronization_interval = parent_app
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[screen]
type = Console
hide = 'flux_integral transfer_in'
[]
[csv]
file_base = 'csv/nek'
type = CSV
[]
[]
[Postprocessors]
[inlet_T]
type = NekSideAverage
field = temperature
boundary = '1'
[]
[outlet_T]
type = NekSideAverage
field = temperature
boundary = '2'
[]
[max_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[]
(test/tests/nek_temp/first_order/nek_volume.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[FieldTransfers]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
order = FIRST
volume = true
[]
[AuxVariables]
[analytic]
[]
[error_temp]
order = CONSTANT
family = MONOMIAL
[]
[difference]
[]
[]
[ICs]
[analytic]
type = FunctionIC
variable = analytic
function = analytic
[]
[]
[AuxKernels]
[error_temp]
type = ElementL2ErrorFunctionAux
variable = error_temp
coupled_variable = temp
function = analytic
[]
[difference]
type = ParsedAux
variable = difference
coupled_variables = 'analytic temp'
expression = 'temp-analytic'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Functions]
[analytic]
type = ParsedFunction
expression = 'exp(x)+sin(y)+x*y*z'
[]
[]
[Postprocessors]
[l2_error_in_nek_temp]
type = ElementL2Error
variable = temp
function = analytic
[]
[max_diff]
type = NodalExtremeValue
variable = difference
value_type = max
[]
[min_diff]
type = NodalExtremeValue
variable = difference
value_type = min
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
(test/tests/nek_temp/first_order/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[FieldTransfers]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
order = FIRST
boundary = '1 2 3 4 5 6 7 8'
[]
[AuxVariables]
[analytic]
[]
[error_temp]
order = CONSTANT
family = MONOMIAL
[]
[difference]
[]
[avg_flux] # only here to avoid a re-gold; otherwise not necessary
[]
[]
[ICs]
[analytic]
type = FunctionIC
variable = analytic
function = analytic
[]
[]
[AuxKernels]
[error_temp]
type = ElementL2ErrorFunctionAux
variable = error_temp
coupled_variable = temp
function = analytic
[]
[difference]
type = ParsedAux
variable = difference
coupled_variables = 'analytic temp'
expression = 'temp-analytic'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Functions]
[analytic]
type = ParsedFunction
expression = 'exp(x)+sin(y)+x*y*z'
[]
[]
[Postprocessors]
[l2_error_in_nek_temp]
type = ElementL2Error
variable = temp
function = analytic
[]
[max_diff]
type = NodalExtremeValue
variable = difference
value_type = max
[]
[min_diff]
type = NodalExtremeValue
variable = difference
value_type = min
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[]
(test/tests/postprocessors/nek_volume_integral/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 4
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[usrwrk00]
type = NekVolumeIntegral
field = usrwrk00
[]
[usrwrk01]
type = NekVolumeIntegral
field = usrwrk01
[]
[usrwrk02]
type = NekVolumeIntegral
field = usrwrk02
[]
[unity_int]
type = NekVolumeIntegral
field = unity
[]
[temp_int]
type = NekVolumeIntegral
field = temperature
[]
[s01_int]
type = NekVolumeIntegral
field = scalar01
[]
[s02_int]
type = NekVolumeIntegral
field = scalar02
[]
[s03_int]
type = NekVolumeIntegral
field = scalar03
[]
[pressure_int]
type = NekVolumeIntegral
field = pressure
[]
[velocity_int]
type = NekVolumeIntegral
field = velocity
[]
[x_velocity_int]
type = NekVolumeIntegral
field = velocity_x
[]
[y_velocity_int]
type = NekVolumeIntegral
field = velocity_y
[]
[z_velocity_int]
type = NekVolumeIntegral
field = velocity_z
[]
[x2_velocity_int]
type = NekVolumeIntegral
field = velocity_x_squared
[]
[y2_velocity_int]
type = NekVolumeIntegral
field = velocity_y_squared
[]
[z2_velocity_int]
type = NekVolumeIntegral
field = velocity_z_squared
[]
[velocity_component]
type = NekVolumeIntegral
field = velocity_component
velocity_direction = '0.1 0.2 -0.3'
[]
[]
(test/tests/postprocessors/nek_viscous_surface_force/nek.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Functions]
[side1x]
type = ParsedFunction
expression = '20*(1+2)'
[]
[side1y]
type = ParsedFunction
expression = '20*(2+2)'
[]
[side1z]
type = ParsedFunction
expression = '20*(3+2)'
[]
[]
[AuxVariables]
[f1]
[]
[f2]
[]
[f3]
[]
[]
[AuxKernels]
[f1]
type = FunctionAux
variable = f1
function = side1x
[]
[f2]
type = FunctionAux
variable = f2
function = side1y
[]
[f3]
type = FunctionAux
variable = f3
function = side1z
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
hide = 'f1 f2 f3'
[]
[Postprocessors]
[viscous_1]
type = NekViscousSurfaceForce
boundary = '1'
mesh = 'fluid'
[]
[compare_x]
type = SideIntegralVariablePostprocessor
variable = f1
boundary = '1'
[]
[compare_y]
type = SideIntegralVariablePostprocessor
variable = f2
boundary = '1'
[]
[compare_z]
type = SideIntegralVariablePostprocessor
variable = f3
boundary = '1'
[]
[sum]
type = ParsedPostprocessor
expression = 'sqrt(compare_x*compare_x+compare_y*compare_y+compare_z*compare_z)'
pp_names = 'compare_x compare_y compare_z'
[]
[]
(test/tests/postprocessors/nek_point_value/points_nondimensional.i)
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 4
[Dimensionalize]
L = 5.0
U = 0.2
T = 10.0
dT = 200.0
rho = 1000
Cp = 3000
s01 = 15.0
ds01 = 250.0
s02 = 20.0
ds02 = 300.0
s03 = 5.0
ds03 = 100.0
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 5.0
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[temp]
type = NekPointValue
field = temperature
point = '0.25 0.3 0.27'
[]
[vx]
type = NekPointValue
field = velocity_x
point = '0.25 0.3 0.27'
[]
[vy]
type = NekPointValue
field = velocity_y
point = '0.25 0.3 0.27'
[]
[vz]
type = NekPointValue
field = velocity_z
point = '0.25 0.3 0.27'
[]
[comp]
type = NekPointValue
field = velocity_component
velocity_direction = '0.5 0.5 0.5'
point = '0.25 0.3 0.27'
[]
[vx2]
type = NekPointValue
field = velocity_x_squared
point = '0.25 0.3 0.27'
[]
[vy2]
type = NekPointValue
field = velocity_y_squared
point = '0.25 0.3 0.27'
[]
[vz2]
type = NekPointValue
field = velocity_z_squared
point = '0.25 0.3 0.27'
[]
[vel]
type = NekPointValue
field = velocity
point = '0.25 0.3 0.27'
[]
[p]
type = NekPointValue
field = pressure
point = '0.25 0.3 0.27'
[]
[scalar01]
type = NekPointValue
field = scalar01
point = '0.25 0.3 0.27'
[]
[scalar02]
type = NekPointValue
field = scalar02
point = '0.25 0.3 0.27'
[]
[scalar03]
type = NekPointValue
field = scalar03
point = '0.25 0.3 0.27'
[]
[unity]
type = NekPointValue
field = unity
point = '0.25 0.3 0.27'
[]
[usrwrk00]
type = NekPointValue
field = usrwrk00
point = '0.25 0.3 0.27'
[]
[usrwrk01]
type = NekPointValue
field = usrwrk01
point = '0.25 0.3 0.27'
[]
[usrwrk02]
type = NekPointValue
field = usrwrk02
point = '0.25 0.3 0.27'
[]
[]
[Outputs]
csv = true
[]
(tutorials/sfr_7pin/nek.i)
interval = 100
[Mesh]
type = NekRSMesh
boundary = '1 4'
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
synchronization_interval = parent_app
n_usrwrk_slots = 1
[FieldTransfers]
[heat_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[temperature]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
# this will only display the NekRS output every N time steps; postprocessors
# are still computed on every step, just not output to the console
time_step_interval = ${interval}
[]
[Postprocessors]
[pin_flux_in_nek]
type = NekHeatFluxIntegral
boundary = '1'
[]
[duct_flux_in_nek]
type = NekHeatFluxIntegral
boundary = '4'
[]
[max_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[]
(test/tests/userobjects/sideset_layered/z_bins.i)
[GlobalParams]
check_boundary_restricted = false
map_space_by_qp = true
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[]
[AuxVariables]
[uo1_bin1]
family = MONOMIAL
order = CONSTANT
[]
[uo1_bin3]
family = MONOMIAL
order = CONSTANT
[]
[uo2_bin1]
family = MONOMIAL
order = CONSTANT
[]
[uo2_bin3]
family = MONOMIAL
order = CONSTANT
[]
[uo_1_2_bin3]
family = MONOMIAL
order = CONSTANT
[]
[T1_bin1]
family = MONOMIAL
order = CONSTANT
[]
[T1_bin3]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[T1_bin1]
type = SpatialUserObjectAux
variable = T1_bin1
user_object = T1_bin1
boundary = '1'
[]
[T1_bin3]
type = SpatialUserObjectAux
variable = T1_bin3
user_object = T1_bin3
boundary = '1'
[]
[uo1_bin1]
type = SpatialUserObjectAux
variable = uo1_bin1
user_object = side1_bin1
boundary = '1'
[]
[uo2_bin1]
type = SpatialUserObjectAux
variable = uo2_bin1
user_object = side2_bin1
boundary = '2'
[]
[uo1_bin3]
type = SpatialUserObjectAux
variable = uo1_bin3
user_object = side1_bin3
boundary = '1'
[]
[uo2_bin3]
type = SpatialUserObjectAux
variable = uo2_bin3
user_object = side2_bin3
boundary = '2'
[]
[uo_1_2_bin3]
type = SpatialUserObjectAux
variable = uo_1_2_bin3
user_object = side_1_2_bin3
boundary = '1 2'
[]
[]
[UserObjects]
[z1]
type = LayeredBin
direction = z
num_layers = 1
[]
[side1_bin1]
type = NekBinnedSideIntegral
bins = 'z1'
field = unity
boundary = '1'
[]
[side2_bin1]
type = NekBinnedSideIntegral
bins = 'z1'
field = unity
boundary = '2'
[]
[side_1_2_bin1] # should equal the sum of side1_bin1 and side1_bin2
type = NekBinnedSideIntegral
bins = 'z1'
field = unity
boundary = '1 2'
[]
[T1_bin1]
type = NekBinnedSideIntegral
bins = 'z1'
field = temperature
boundary = '1'
[]
[z3]
type = LayeredBin
direction = z
num_layers = 3
[]
[side1_bin3]
type = NekBinnedSideIntegral
bins = 'z3'
field = unity
boundary = '1'
[]
[side2_bin3]
type = NekBinnedSideIntegral
bins = 'z3'
field = unity
boundary = '2'
[]
[side_1_2_bin3] # should equal the sum of side1_bin3 and side2_bin3
type = NekBinnedSideIntegral
bins = 'z3'
field = unity
boundary = '1 2'
[]
[T1_bin3]
type = NekBinnedSideIntegral
bins = 'z3'
field = temperature
boundary = '1'
[]
[]
[Postprocessors]
[area1] # should match the value of the side1_bin1 user object
type = NekSideIntegral
field = unity
boundary = '1'
[]
[area_divided1] # should match the value of the side1_bin3 user object
type = LinearCombinationPostprocessor
pp_names = 'area1'
pp_coefs = '${fparse 1.0 / 3.0}'
[]
[area2] # should match the value of the side2_bin1 user object
type = NekSideIntegral
field = unity
boundary = '2'
[]
[area_divided2] # should match the value of the side2_bin3 user object
type = LinearCombinationPostprocessor
pp_names = 'area2'
pp_coefs = '${fparse 1.0 / 3.0}'
[]
[T1] # should match the value of the T1_bin1 user object
type = NekSideIntegral
field = temperature
boundary = '1'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
execute_on = 'final'
exodus = true
[]
(test/tests/nek_errors/usrwrk_transfers/scalar.i)
[Mesh]
type = NekRSMesh
boundary = '6'
[]
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 5
[ScalarTransfers]
[scalar]
type = NekScalarValue
direction = to_nek
usrwrk_slot = '3'
[]
[]
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = '3'
[]
[flux2]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = '4'
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/userobjects/layered_layered/3d.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[Dimensionalize]
L = 2.0
U = 1.0
rho = 834.5
Cp = 1228.0
T = 573.0
dT = 10.0
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 2.0
[]
[AuxVariables]
[uo]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[uo]
type = SpatialUserObjectAux
variable = uo
user_object = vol_integral
[]
[]
[UserObjects]
[x_bins]
type = LayeredBin
direction = x
num_layers = 3
[]
[y_bins]
type = LayeredBin
direction = y
num_layers = 3
[]
[z_bins]
type = LayeredBin
direction = z
num_layers = 4
[]
[vol_integral]
type = NekBinnedVolumeIntegral
bins = 'x_bins y_bins z_bins'
field = pressure
[]
[]
[VectorPostprocessors]
# from_uo gives exactly the same results as manually specifying the points in 'manually_provided'
[from_uo]
type = SpatialUserObjectVectorPostprocessor
userobject = vol_integral
[]
[manually_provided]
type = SpatialUserObjectVectorPostprocessor
userobject = vol_integral
points = '-0.66666667 -0.66666667 -3.0
-0.66666667 -0.66666667 -1.0
-0.66666667 -0.66666667 1.0
-0.66666667 -0.66666667 3.0
-0.66666667 0.0 -3.0
-0.66666667 0.0 -1.0
-0.66666667 0.0 1.0
-0.66666667 0.0 3.0
-0.66666667 0.66666667 -3.0
-0.66666667 0.66666667 -1.0
-0.66666667 0.66666667 1.0
-0.66666667 0.66666667 3.0
0.0 -0.66666667 -3.0
0.0 -0.66666667 -1.0
0.0 -0.66666667 1.0
0.0 -0.66666667 3.0
0.0 0.0 -3.0
0.0 0.0 -1.0
0.0 0.0 1.0
0.0 0.0 3.0
0.0 0.66666667 -3.0
0.0 0.66666667 -1.0
0.0 0.66666667 1.0
0.0 0.66666667 3.0
0.66666667 -0.66666667 -3.0
0.66666667 -0.66666667 -1.0
0.66666667 -0.66666667 1.0
0.66666667 -0.66666667 3.0
0.66666667 0.0 -3.0
0.66666667 0.0 -1.0
0.66666667 0.0 1.0
0.66666667 0.0 3.0
0.66666667 0.66666667 -3.0
0.66666667 0.66666667 -1.0
0.66666667 0.66666667 1.0
0.66666667 0.66666667 3.0'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
exodus = true
execute_on = 'final'
[]
(test/tests/userobjects/interval/nek.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[Dimensionalize]
L = 2.0
U = 1.0
rho = 834.5
Cp = 1228.0
T = 573.0
dT = 10.0
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 2.0
[]
[UserObjects]
[x_bins]
type = LayeredBin
direction = x
num_layers = 3
[]
[avg_v]
type = NekBinnedVolumeAverage
bins = 'x_bins'
field = velocity_z
interval = 3
[]
[]
[VectorPostprocessors]
[v]
type = SpatialUserObjectVectorPostprocessor
userobject = avg_v
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
interval = 3
[]
(test/tests/userobjects/gap/nondimensional/nek.i)
[Mesh]
type = NekRSMesh
volume = true
scaling = 7.646e-3
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[Dimensionalize]
L = 7.646e-3
T = 100.0
dT = 50.0
U = 2.0
rho = 834.5
Cp = 1228.0
[]
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[AuxVariables]
[avg_T]
family = MONOMIAL
order = CONSTANT
[]
[avg_p]
family = MONOMIAL
order = CONSTANT
[]
[avg_v]
family = MONOMIAL
order = CONSTANT
[]
[integral_T]
family = MONOMIAL
order = CONSTANT
[]
[integral_p]
family = MONOMIAL
order = CONSTANT
[]
[integral_v]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[avg_T]
type = SpatialUserObjectAux
variable = avg_T
user_object = avg_T
[]
[avg_p]
type = SpatialUserObjectAux
variable = avg_p
user_object = avg_p
[]
[avg_v]
type = SpatialUserObjectAux
variable = avg_v
user_object = avg_v
[]
[integral_T]
type = SpatialUserObjectAux
variable = integral_T
user_object = integral_T
[]
[integral_p]
type = SpatialUserObjectAux
variable = integral_p
user_object = integral_p
[]
[integral_v]
type = SpatialUserObjectAux
variable = integral_v
user_object = integral_v
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[avg_T]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = temperature
[]
[avg_p]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = pressure
[]
[avg_v]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = velocity
[]
[integral_T]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = temperature
[]
[integral_p]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = pressure
[]
[integral_v]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = velocity
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel.i'
execute_on = timestep_end
[]
[]
[Transfers]
[uo1_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_T
to_multi_app = subchannel
variable = avg_T
[]
[uo2_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_p
to_multi_app = subchannel
variable = avg_p
[]
[uo3_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_v
to_multi_app = subchannel
variable = avg_v
[]
[uo4_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_T
to_multi_app = subchannel
variable = integral_T
[]
[uo5_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_p
to_multi_app = subchannel
variable = integral_p
[]
[uo6_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_v
to_multi_app = subchannel
variable = integral_v
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/userobjects/radial_layered/2d.i)
[Problem]
type = NekRSProblem
casename = 'cylinder'
[Dimensionalize]
L = 5.0
U = 1.0
rho = 834.5
Cp = 1228.0
T = 573.0
dT = 10.0
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 5.0
[]
[AuxVariables]
[uo]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[uo]
type = SpatialUserObjectAux
variable = uo
user_object = vol_integral
[]
[]
[UserObjects]
[r_bins]
type = RadialBin
vertical_axis = z
nr = 5
rmin = 0.0
rmax = 1.0
[]
[z_bins]
type = LayeredBin
direction = z
num_layers = 5
[]
[vol_integral]
type = NekBinnedVolumeIntegral
bins = 'r_bins z_bins'
field = pressure
[]
[]
[VectorPostprocessors]
# from_uo gives exactly the same results as manually specifying the points in 'manually_provided'
[from_uo]
type = SpatialUserObjectVectorPostprocessor
userobject = vol_integral
[]
[manually_provided]
type = SpatialUserObjectVectorPostprocessor
userobject = vol_integral
points = '0.1 0.0 -2.0
0.1 0.0 -1.0
0.1 0.0 0.0
0.1 0.0 1.0
0.1 0.0 2.0
0.3 0.0 -2.0
0.3 0.0 -1.0
0.3 0.0 0.0
0.3 0.0 1.0
0.3 0.0 2.0
0.5 0.0 -2.0
0.5 0.0 -1.0
0.5 0.0 0.0
0.5 0.0 1.0
0.5 0.0 2.0
0.7 0.0 -2.0
0.7 0.0 -1.0
0.7 0.0 0.0
0.7 0.0 1.0
0.7 0.0 2.0
0.9 0.0 -2.0
0.9 0.0 -1.0
0.9 0.0 0.0
0.9 0.0 1.0
0.9 0.0 2.0'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
exodus = true
execute_on = 'final'
[]
(test/tests/nek_errors/invalid_settings/mesh_scaling.i)
[Mesh]
type = NekRSMesh
volume = true
scaling = 0.5
[]
[Problem]
type = NekRSProblem
casename = 'brick'
[Dimensionalize]
L = 2
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/postprocessors/nek_volume_average/nondimensional.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 4
[Dimensionalize]
L = 2
U = 0.2
T = 10
dT = 100
s01 = 15
ds01 = 150
s02 = 20
ds02 = 200
s03 = 30
ds03 = 300
rho = 1000
Cp = 4000
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 2
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[unity_average]
type = NekVolumeAverage
field = unity
[]
[temp_average]
type = NekVolumeAverage
field = temperature
[]
[u00_average]
type = NekVolumeAverage
field = usrwrk00
[]
[u01_average]
type = NekVolumeAverage
field = usrwrk01
[]
[u02_average]
type = NekVolumeAverage
field = usrwrk02
[]
[s01_average]
type = NekVolumeAverage
field = scalar01
[]
[s02_average]
type = NekVolumeAverage
field = scalar02
[]
[s03_average]
type = NekVolumeAverage
field = scalar03
[]
[pressure_average]
type = NekVolumeAverage
field = pressure
[]
[velocity_average]
type = NekVolumeAverage
field = velocity
[]
[x_velocity_average]
type = NekVolumeAverage
field = velocity_x
[]
[y_velocity_average]
type = NekVolumeAverage
field = velocity_y
[]
[z_velocity_average]
type = NekVolumeAverage
field = velocity_z
[]
[x2_velocity_average]
type = NekVolumeAverage
field = velocity_x_squared
[]
[y2_velocity_average]
type = NekVolumeAverage
field = velocity_y_squared
[]
[z2_velocity_average]
type = NekVolumeAverage
field = velocity_z_squared
[]
[velocity_component]
type = NekVolumeAverage
field = velocity_component
velocity_direction = '0.1 0.2 -0.3'
[]
[]
(tutorials/sfr_7pin/nek_fluxflux.i)
interval = 100
[Mesh]
type = NekRSMesh
boundary = '1 4'
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
synchronization_interval = parent_app
n_usrwrk_slots = 1
[FieldTransfers]
[heat_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[temperature]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
# this will only display the NekRS output every N time steps; postprocessors
# are still computed on every step, just not output to the console
time_step_interval = ${interval}
[]
[UserObjects]
[axial_bin]
type = LayeredBin
direction = z
num_layers = 20
[]
[volume_bin]
type = HexagonalSubchannelBin
bundle_pitch = ${fparse 0.02625*1.1}
pin_pitch = 0.00904000030292588
pin_diameter = 8e-3
n_rings = 2
[]
[wall_flux]
type = NekBinnedSideAverage
bins = 'axial_bin volume_bin'
boundary = '1'
field = usrwrk00
map_space_by_qp = true
interval = ${interval}
check_zero_contributions = false
[]
[wall_temp]
type = NekBinnedSideAverage
bins = 'axial_bin volume_bin'
boundary = '1'
field = temperature
map_space_by_qp = true
interval = ${interval}
check_zero_contributions = false
[]
[bulk_temp]
type = NekBinnedVolumeAverage
bins = 'axial_bin volume_bin'
field = temperature
map_space_by_qp = true
interval = ${interval}
check_zero_contributions = false
[]
[]
[AuxVariables]
[h]
[]
[]
[AuxKernels]
[h]
type = HeatTransferCoefficientAux
variable = h
wall_T = wall_temp
bulk_T = bulk_temp
heat_flux = wall_flux
[]
[]
[Postprocessors]
[pin_flux_in_nek]
type = NekHeatFluxIntegral
boundary = '1'
[]
[duct_flux_in_nek]
type = NekHeatFluxIntegral
boundary = '4'
[]
[max_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[]
(test/tests/transfers/nek_scalar_value/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 1
[ScalarTransfers]
[scalar1]
type = NekScalarValue
direction = to_nek
usrwrk_slot = 0
[]
[scalar2]
type = NekScalarValue
direction = to_nek
usrwrk_slot = 0
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Controls]
[func_control]
type = RealFunctionControl
parameter = 'Problem/ScalarTransfers/scalar1/value'
function = 'val'
execute_on = 'timestep_begin'
[]
[func_control2]
type = RealFunctionControl
parameter = 'Problem/ScalarTransfers/scalar2/value'
function = 'val2'
execute_on = 'timestep_begin'
[]
[]
[Functions]
[val]
type = ParsedFunction
expression = 'if (t > 1, 200.0, 100.0)'
[]
[val2]
type = ParsedFunction
expression = 'if (t > 1, 400.0, 300.0)'
[]
[]
[Postprocessors]
[avg_t_5]
type = NekSideAverage
field = temperature
boundary = '5'
[]
[avg_t_6]
type = NekSideAverage
field = temperature
boundary = '6'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/transfers/nek_flux/nek.i)
dTv = 10
Tv = 5
[Problem]
type = NekRSProblem
casename = 'brick'
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = from_nek
[]
[]
[Dimensionalize]
dT = ${dTv}
T = ${Tv}
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[Quadrature]
type = GAUSS_LOBATTO
order = FIRST
[]
[]
[Postprocessors]
[read_flux]
type = ElementIntegralVariablePostprocessor
variable = flux
[]
[analytic_flux]
type = ElementIntegralVariablePostprocessor
variable = moose_flux
[]
[max_error]
type = ElementExtremeValue
variable = d
[]
[]
[AuxVariables]
[moose_flux]
[]
[d]
[]
[]
[AuxKernels]
[moose_flux]
type = FunctionAux
variable = moose_flux
function = f
[]
[d]
type = ParsedAux
variable = d
expression = 'flux - moose_flux'
coupled_variables = 'flux moose_flux'
[]
[]
[Functions]
[f] # dimensionalized
type = ParsedFunction
expression = '2*(cos(y)+x*z) * ${dTv}'
[]
[]
[Materials]
[k]
type = GenericConstantMaterial
prop_names = 'k'
prop_values = '2'
[]
[]
[Outputs]
csv = true
[]
(test/tests/nek_standalone/conj_ht/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'conj_ht'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[Area_BC3_flow]
type = NekSideIntegral
boundary = '3'
field = unity
mesh = 'fluid'
[]
[Area_BC3_all]
type = NekSideIntegral
boundary = '3'
field = unity
mesh = 'all'
[]
[SideAverage_T_BC3_flow]
type = NekSideAverage
boundary = '3'
field = temperature
mesh = 'fluid'
[]
[SideAverage_T_BC3_all]
type = NekSideAverage
boundary = '3'
field = temperature
mesh = 'all'
[]
[HeatFluxIntegral_BC3_flow]
type = NekHeatFluxIntegral
boundary = '3'
mesh = 'fluid'
[]
[HeatFluxIntegral_BC3_all]
type = NekHeatFluxIntegral
boundary = '3'
mesh = 'all'
[]
[MassFlowRate_BC1_flow]
type = NekMassFluxWeightedSideIntegral
boundary = '1'
field = unity
mesh = 'fluid'
[]
[MassFlowRate_BC1_all]
type = NekMassFluxWeightedSideIntegral
boundary = '1'
field = unity
mesh = 'all'
[]
[MflowAvgTemp_BC2_flow]
type = NekMassFluxWeightedSideAverage
boundary = '2'
field = temperature
mesh = 'fluid'
[]
[MflowAvgTemp_BC2_all]
type = NekMassFluxWeightedSideAverage
boundary = '2'
field = temperature
mesh = 'all'
[]
[Reynolds_BC1_flow]
type = ReynoldsNumber
boundary = '1'
L_ref = 0.5
mesh = 'fluid'
[]
[Reynolds_BC1_all]
type = ReynoldsNumber
boundary = '1'
L_ref = 0.5
mesh = 'all'
[]
[Peclet_BC1_flow]
type = PecletNumber
boundary = '1'
L_ref = 0.5
mesh = 'fluid'
[]
[Peclet_BC1_all]
type = PecletNumber
boundary = '1'
L_ref = 0.5
mesh = 'all'
[]
#
# Volume post processors
#
[Vol_flow]
type = NekVolumeIntegral
field = unity
mesh = 'fluid'
[]
[Vol_all]
type = NekVolumeIntegral
field = unity
mesh = 'all'
[]
[maxVol_T_flow]
type = NekVolumeExtremeValue
field = temperature
value_type = max
mesh = 'fluid'
[]
[maxVol_T_all]
type = NekVolumeExtremeValue
field = temperature
value_type = max
mesh = 'all'
[]
[avgVol_T_flow]
type = NekVolumeAverage
field = temperature
mesh = 'fluid'
[]
[avgVol_T_all]
type = NekVolumeAverage
field = temperature
mesh = 'all'
[]
[]
[Outputs]
csv = true
exodus = true
execute_on = final
[]
(test/tests/postprocessors/nek_side_average/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
[Postprocessors]
[temp_avg1]
type = NekSideAverage
field = temperature
boundary = '1'
[]
[temp_avg2]
type = NekSideAverage
field = temperature
boundary = '2'
[]
[temp_avg3]
type = NekSideAverage
field = temperature
boundary = '3'
[]
[temp_avg4]
type = NekSideAverage
field = temperature
boundary = '4'
[]
[temp_avg5]
type = NekSideAverage
field = temperature
boundary = '5'
[]
[temp_avg6]
type = NekSideAverage
field = temperature
boundary = '6'
[]
[temp_avg7]
type = NekSideAverage
field = temperature
boundary = '7'
[]
[temp_avg8]
type = NekSideAverage
field = temperature
boundary = '8'
[]
[pressure_avg1]
type = NekSideAverage
field = pressure
boundary = '1'
[]
[pressure_avg2]
type = NekSideAverage
field = pressure
boundary = '2'
[]
[pressure_avg3]
type = NekSideAverage
field = pressure
boundary = '3'
[]
[pressure_avg4]
type = NekSideAverage
field = pressure
boundary = '4'
[]
[pressure_avg5]
type = NekSideAverage
field = pressure
boundary = '5'
[]
[pressure_avg6]
type = NekSideAverage
field = pressure
boundary = '6'
[]
[pressure_avg7]
type = NekSideAverage
field = pressure
boundary = '7'
[]
[pressure_avg8]
type = NekSideAverage
field = pressure
boundary = '8'
[]
[velocity_avg1]
type = NekSideAverage
field = velocity
boundary = '1'
[]
[velocity_avg2]
type = NekSideAverage
field = velocity
boundary = '2'
[]
[velocity_avg3]
type = NekSideAverage
field = velocity
boundary = '3'
[]
[velocity_avg4]
type = NekSideAverage
field = velocity
boundary = '4'
[]
[velocity_avg5]
type = NekSideAverage
field = velocity
boundary = '5'
[]
[velocity_avg6]
type = NekSideAverage
field = velocity
boundary = '6'
[]
[velocity_avg7]
type = NekSideAverage
field = velocity
boundary = '7'
[]
[velocity_avg8]
type = NekSideAverage
field = velocity
boundary = '8'
[]
[x_velocity_avg1]
type = NekSideAverage
field = velocity_x
boundary = '1'
[]
[x_velocity_avg2]
type = NekSideAverage
field = velocity_x
boundary = '2'
[]
[x_velocity_avg3]
type = NekSideAverage
field = velocity_x
boundary = '3'
[]
[x_velocity_avg4]
type = NekSideAverage
field = velocity_x
boundary = '4'
[]
[x_velocity_avg5]
type = NekSideAverage
field = velocity_x
boundary = '5'
[]
[x_velocity_avg6]
type = NekSideAverage
field = velocity_x
boundary = '6'
[]
[x_velocity_avg7]
type = NekSideAverage
field = velocity_x
boundary = '7'
[]
[x_velocity_avg8]
type = NekSideAverage
field = velocity_x
boundary = '8'
[]
[y_velocity_avg1]
type = NekSideAverage
field = velocity_y
boundary = '1'
[]
[y_velocity_avg2]
type = NekSideAverage
field = velocity_y
boundary = '2'
[]
[y_velocity_avg3]
type = NekSideAverage
field = velocity_y
boundary = '3'
[]
[y_velocity_avg4]
type = NekSideAverage
field = velocity_y
boundary = '4'
[]
[y_velocity_avg5]
type = NekSideAverage
field = velocity_y
boundary = '5'
[]
[y_velocity_avg6]
type = NekSideAverage
field = velocity_y
boundary = '6'
[]
[y_velocity_avg7]
type = NekSideAverage
field = velocity_y
boundary = '7'
[]
[y_velocity_avg8]
type = NekSideAverage
field = velocity_y
boundary = '8'
[]
[z_velocity_avg1]
type = NekSideAverage
field = velocity_z
boundary = '1'
[]
[z_velocity_avg2]
type = NekSideAverage
field = velocity_z
boundary = '2'
[]
[z_velocity_avg3]
type = NekSideAverage
field = velocity_z
boundary = '3'
[]
[z_velocity_avg4]
type = NekSideAverage
field = velocity_z
boundary = '4'
[]
[z_velocity_avg5]
type = NekSideAverage
field = velocity_z
boundary = '5'
[]
[z_velocity_avg6]
type = NekSideAverage
field = velocity_z
boundary = '6'
[]
[z_velocity_avg7]
type = NekSideAverage
field = velocity_z
boundary = '7'
[]
[z_velocity_avg8]
type = NekSideAverage
field = velocity_z
boundary = '8'
[]
[velocity_comp1]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '1'
[]
[velocity_comp2]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '2'
[]
[velocity_comp3]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '3'
[]
[velocity_comp4]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '4'
[]
[velocity_comp5]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '5'
[]
[velocity_comp6]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '6'
[]
[velocity_comp7]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '7'
[]
[velocity_comp8]
type = NekSideIntegral
field = velocity_component
velocity_direction = '0.1 -0.2 0.3'
boundary = '8'
[]
[x_velocity2_avg1]
type = NekSideAverage
field = velocity_x_squared
boundary = '1'
[]
[x_velocity2_avg2]
type = NekSideAverage
field = velocity_x_squared
boundary = '2'
[]
[x_velocity2_avg3]
type = NekSideAverage
field = velocity_x_squared
boundary = '3'
[]
[x_velocity2_avg4]
type = NekSideAverage
field = velocity_x_squared
boundary = '4'
[]
[x_velocity2_avg5]
type = NekSideAverage
field = velocity_x_squared
boundary = '5'
[]
[x_velocity2_avg6]
type = NekSideAverage
field = velocity_x_squared
boundary = '6'
[]
[x_velocity2_avg7]
type = NekSideAverage
field = velocity_x_squared
boundary = '7'
[]
[x_velocity2_avg8]
type = NekSideAverage
field = velocity_x_squared
boundary = '8'
[]
[y_velocity2_avg1]
type = NekSideAverage
field = velocity_y_squared
boundary = '1'
[]
[y_velocity2_avg2]
type = NekSideAverage
field = velocity_y_squared
boundary = '2'
[]
[y_velocity2_avg3]
type = NekSideAverage
field = velocity_y_squared
boundary = '3'
[]
[y_velocity2_avg4]
type = NekSideAverage
field = velocity_y_squared
boundary = '4'
[]
[y_velocity2_avg5]
type = NekSideAverage
field = velocity_y_squared
boundary = '5'
[]
[y_velocity2_avg6]
type = NekSideAverage
field = velocity_y_squared
boundary = '6'
[]
[y_velocity2_avg7]
type = NekSideAverage
field = velocity_y_squared
boundary = '7'
[]
[y_velocity2_avg8]
type = NekSideAverage
field = velocity_y_squared
boundary = '8'
[]
[z_velocity2_avg1]
type = NekSideAverage
field = velocity_z_squared
boundary = '1'
[]
[z_velocity2_avg2]
type = NekSideAverage
field = velocity_z_squared
boundary = '2'
[]
[z_velocity2_avg3]
type = NekSideAverage
field = velocity_z_squared
boundary = '3'
[]
[z_velocity2_avg4]
type = NekSideAverage
field = velocity_z_squared
boundary = '4'
[]
[z_velocity2_avg5]
type = NekSideAverage
field = velocity_z_squared
boundary = '5'
[]
[z_velocity2_avg6]
type = NekSideAverage
field = velocity_z_squared
boundary = '6'
[]
[z_velocity2_avg7]
type = NekSideAverage
field = velocity_z_squared
boundary = '7'
[]
[z_velocity2_avg8]
type = NekSideAverage
field = velocity_z_squared
boundary = '8'
[]
[]
(test/tests/nek_errors/usrwrk_transfers/flux.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 7
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = '1'
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/postprocessors/nek_point_value/usrwrk_units.i)
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 4
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
initial_flux_integral = 1
usrwrk_slot = 1
direction = to_nek
[]
[heat_source]
type = NekVolumetricSource
initial_source_integral = 2
usrwrk_slot = 2
direction = to_nek
[]
[]
[Dimensionalize]
L = 5.0
U = 0.2
T = 10.0
dT = 200.0
rho = 1000
Cp = 3000
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1'
volume = true
scaling = 5.0
[]
[ICs]
[flux]
type = FunctionIC
variable = avg_flux
function = f
[]
[source]
type = FunctionIC
variable = heat_source
function = s
[]
[]
[Functions]
[f]
type = ParsedFunction
expression = '(100+200*x+300*y+400*z)/4e4'
[]
[s]
type = ParsedFunction
expression = '(100+200*x+300*y+500*z)/2.937500e+05/1.106383e+00*2'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[u01]
type = NekPointValue
field = usrwrk01
point = '0.25 0.3 0.27'
[]
[u02]
type = NekPointValue
field = usrwrk02
point = '0.25 0.3 0.27'
[]
[integral_flux]
type = SideIntegralVariablePostprocessor
variable = avg_flux
boundary = '1'
[]
[integral_source]
type = ElementIntegralVariablePostprocessor
variable = heat_source
[]
[]
[Outputs]
csv = true
hide = 'avg_flux_integral heat_source_integral'
[]
(test/tests/multiple_nek_apps/subdirectory/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid/pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
[out]
type = CSV
execute_on = 'final'
[]
[]
[Postprocessors]
[temp_avg1]
type = NekSideAverage
field = temperature
boundary = '1'
[]
[]
(test/tests/cht/sfr_pincell/nek_isolated.i)
[Problem]
type = NekRSProblem
casename = 'sfr_pin'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
initial_flux_integral = 10
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1'
[]
[ICs]
[avg_flux]
type = ConstantIC
variable = avg_flux
value = 1.0
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[nek_flux]
type = NekHeatFluxIntegral
boundary = '1'
[]
[]
[Outputs]
csv = true
execute_on = 'final'
[]
(test/tests/cht/sfr_pincell/nek.i)
[Problem]
type = NekRSProblem
casename = 'sfr_pin'
synchronization_interval = parent_app
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[nek_flux]
type = NekHeatFluxIntegral
boundary = '1'
[]
[average_inlet_T]
type = NekSideAverage
field = temperature
boundary = '3'
execute_on = initial
[]
[average_outlet_T]
type = NekSideAverage
field = temperature
boundary = '4'
[]
[dT]
type = DifferencePostprocessor
value1 = average_outlet_T
value2 = average_inlet_T
[]
[inlet_mdot]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '3'
execute_on = initial
[]
# postprocessors for comparing against non-dimensional version in ../nondimensional
# --> uncomment in order to get the reference values that the nondimensional boundary coupling
# was verified against
#
# # side integral
# [area_1]
# type = NekSideIntegral
# field = unity
# boundary = '1'
# []
# [pressure_1]
# type = NekSideIntegral
# field = pressure
# boundary = '1'
# []
# [temperature_1]
# type = NekSideIntegral
# field = temperature
# boundary = '1'
# []
# # side average
# [avg_area_1]
# type = NekSideAverage
# field = unity
# boundary = '1'
# []
# [avg_pressure_1]
# type = NekSideAverage
# field = pressure
# boundary = '1'
# []
# [avg_temperature_1]
# type = NekSideAverage
# field = temperature
# boundary = '1'
# []
# # volume integral
# [volume]
# type = NekVolumeIntegral
# field = unity
# []
# [pressure_vol]
# type = NekVolumeIntegral
# field = pressure
# []
# [temperature_vol]
# type = NekVolumeIntegral
# field = temperature
# []
# # volume average
# [avg_volume]
# type = NekVolumeAverage
# field = unity
# []
# [avg_pressure_vol]
# type = NekVolumeAverage
# field = pressure
# []
# [avg_temperature_vol]
# type = NekVolumeAverage
# field = temperature
# []
# # heat flux integral
# [nek_flux]
# type = NekHeatFluxIntegral
# boundary = '1'
# []
# # mass flux weighted integral
# [inlet_mdot]
# type = NekMassFluxWeightedSideIntegral
# field = unity
# boundary = '3'
# execute_on = initial
# []
# [outlet_T]
# type = NekMassFluxWeightedSideIntegral
# field = temperature
# boundary = '4'
# []
# [inlet_P]
# type = NekMassFluxWeightedSideIntegral
# field = pressure
# boundary = '4'
# []
# # mass flux weighted integral
# [inlet_mdot_avg]
# type = NekMassFluxWeightedSideAverage
# field = unity
# boundary = '3'
# execute_on = initial
# []
# [outlet_T_avg]
# type = NekMassFluxWeightedSideAverage
# field = temperature
# boundary = '4'
# []
# [inlet_P_avg]
# type = NekMassFluxWeightedSideAverage
# field = pressure
# boundary = '4'
# []
# # extreme value postprocessors - VOLUME
# [max_T]
# type = NekVolumeExtremeValue
# field = temperature
# value_type = max
# []
# [min_T]
# type = NekVolumeExtremeValue
# field = temperature
# value_type = min
# []
# [max_p]
# type = NekVolumeExtremeValue
# field = pressure
# value_type = max
# []
# [min_p]
# type = NekVolumeExtremeValue
# field = pressure
# value_type = min
# []
# [max_1]
# type = NekVolumeExtremeValue
# field = unity
# value_type = max
# []
# [min_1]
# type = NekVolumeExtremeValue
# field = unity
# value_type = min
# []
# # extreme value postprocessors - SIDE
# [max_T_out]
# type = NekSideExtremeValue
# field = temperature
# boundary = '4'
# value_type = max
# []
# [min_T_out]
# type = NekSideExtremeValue
# field = temperature
# boundary = '4'
# value_type = min
# []
# [max_p_in]
# type = NekSideExtremeValue
# field = pressure
# boundary = '3'
# value_type = max
# []
# [min_p_in]
# type = NekSideExtremeValue
# field = pressure
# boundary = '3'
# value_type = min
# []
# [max_1_in]
# type = NekSideExtremeValue
# field = unity
# boundary = '3'
# value_type = max
# []
# [min_1_in]
# type = NekSideExtremeValue
# field = unity
# boundary = '3'
# value_type = min
# []
[]
[Outputs]
exodus = true
execute_on = 'final'
csv = true
[screen]
type = Console
hide = 'average_inlet_T average_outlet_T transfer_in'
[]
[]
(test/tests/conduction/nonidentical_volume/cylinder/nek_exact.i)
[Problem]
type = NekRSProblem
casename = 'cylinder_low'
usrwrk_output = '1'
usrwrk_output_prefix = 'src'
n_usrwrk_slots = 2
[FieldTransfers]
[heat_source]
type = NekVolumetricSource
usrwrk_slot = 0
direction = to_nek
postprocessor_to_conserve = source_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
exact = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[avg_T_volume]
type = NekVolumeAverage
field = temperature
[]
[point]
type = PointValue
variable = temp
point = '0.5 0.0 0.0 '
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
csv = true
[]
(test/tests/cht/nondimensional/nek_exact.i)
[Problem]
type = NekRSProblem
casename = 'sfr_pin'
n_usrwrk_slots = 1
# This input is run in nondimensional form to verify that all the postprocessors
# and data transfers in/out of nekRS are properly dimensionalized.
[Dimensionalize]
U = 0.0950466
T = 628.15
dT = 50.0
L = 0.908e-2
rho = 834.5
Cp = 1228.0
[]
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1'
exact = true
# nekRS runs in non-dimensional form, which means that we shrunk the mesh
# from physical units of meters to our characteristic scale of 0.908e-2 m
# (the pin pitch, arbitrarily chosen). That means that we must multiply
# the nekRS mesh by 0.908e-2 to get back in units of meters that BISON is
# running in.
scaling = 0.908e-2
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[synchronization_in]
type = Receiver
[]
[]
[Outputs]
exodus = true
[screen]
type = Console
hide = 'synchronization_in'
[]
[]
(test/tests/nek_file_output/usrwrk/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'brick'
usrwrk_output = '0 1'
usrwrk_output_prefix = 'aaa ccc'
n_usrwrk_slots = 2
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_errors/deformation/nek.i)
[Mesh]
type = NekRSMesh
order = SECOND
volume = true
parallel_type = replicated
[]
[Problem]
type = NekRSProblem
casename = 'elast_nomv'
n_usrwrk_slots = 4
[FieldTransfers]
[disp]
type = NekMeshDeformation
direction = to_nek
usrwrk_slot = '1 2 3'
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/conduction/zero_flux/mismatch_nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
conserve_flux_by_sideset = true
postprocessor_to_conserve = flux_integral
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/nek_standalone/channel/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'channel'
[FieldTransfers]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_Vx]
type = NekVolumeExtremeValue
field = velocity_x
value_type = max
[]
[max_Vx_output]
type = NodalExtremeValue
variable = vel_x
value_type = max
[]
[max_Vx_diff]
type = DifferencePostprocessor
value1 = max_Vx
value2 = max_Vx_output
[]
[min_Vx]
type = NekVolumeExtremeValue
field = velocity_x
value_type = min
[]
[min_Vx_output]
type = NodalExtremeValue
variable = vel_x
value_type = min
[]
[min_Vx_diff]
type = DifferencePostprocessor
value1 = min_Vx
value2 = min_Vx_output
[]
[max_Vy]
type = NekVolumeExtremeValue
field = velocity_y
value_type = max
[]
[max_Vy_output]
type = NodalExtremeValue
variable = vel_y
value_type = max
[]
[max_Vy_diff]
type = DifferencePostprocessor
value1 = max_Vy
value2 = max_Vy_output
[]
[min_Vy]
type = NekVolumeExtremeValue
field = velocity_y
value_type = min
[]
[min_Vy_output]
type = NodalExtremeValue
variable = vel_y
value_type = min
[]
[max_p]
type = NekVolumeExtremeValue
field = pressure
value_type = max
[]
[max_p_output]
type = NodalExtremeValue
variable = P
value_type = max
[]
[max_p_diff]
type = DifferencePostprocessor
value1 = max_p
value2 = max_p_output
[]
[min_p]
type = NekVolumeExtremeValue
field = pressure
value_type = min
[]
[min_p_output]
type = NodalExtremeValue
variable = P
value_type = min
[]
[min_p_diff]
type = DifferencePostprocessor
value1 = min_p
value2 = min_p_output
[]
[area]
type = NekSideIntegral
field = unity
boundary = '1'
[]
[area_output]
type = AreaPostprocessor
boundary = '1'
[]
[area_diff]
type = DifferencePostprocessor
value1 = area
value2 = area_output
[]
[volume]
type = NekVolumeIntegral
field = unity
[]
[volume_output]
type = VolumePostprocessor
[]
[volume_diff]
type = DifferencePostprocessor
value1 = volume
value2 = volume_output
[]
[max_Vx_side]
type = NekSideExtremeValue
field = velocity_x
value_type = max
boundary = '1'
[]
[max_Vx_side_output]
type = NodalExtremeValue
variable = vel_x
value_type = max
boundary = '1'
[]
[max_Vx_side_diff]
type = DifferencePostprocessor
value1 = max_Vx_side
value2 = max_Vx_side_output
[]
[max_Vy_side]
type = NekSideExtremeValue
field = velocity_y
value_type = max
boundary = '1'
[]
[max_Vy_side_output]
type = NodalExtremeValue
variable = vel_y
value_type = max
boundary = '1'
[]
[max_Vy_side_diff]
type = DifferencePostprocessor
value1 = max_Vy_side
value2 = max_Vy_side_output
[]
[min_Vx_side]
type = NekSideExtremeValue
field = velocity_x
value_type = min
boundary = '1'
[]
[min_Vx_side_output]
type = NodalExtremeValue
variable = vel_x
value_type = min
boundary = '1'
[]
[min_Vx_side_diff]
type = DifferencePostprocessor
value1 = min_Vx_side
value2 = min_Vx_side_output
[]
[min_Vy_side]
type = NekSideExtremeValue
field = velocity_y
value_type = min
boundary = '1'
[]
[min_Vy_side_output]
type = NodalExtremeValue
variable = vel_y
value_type = min
boundary = '1'
[]
[min_Vy_side_diff]
type = DifferencePostprocessor
value1 = min_Vy_side
value2 = min_Vy_side_output
[]
[max_p_side]
type = NekSideExtremeValue
field = pressure
value_type = max
boundary = '1'
[]
[max_p_side_output]
type = NodalExtremeValue
variable = P
value_type = max
boundary = '1'
[]
[min_p_side_diff]
type = DifferencePostprocessor
value1 = min_p_side
value2 = min_p_side_output
[]
[min_p_side]
type = NekSideExtremeValue
field = pressure
value_type = min
boundary = '1'
[]
[min_p_side_output]
type = NodalExtremeValue
variable = P
value_type = min
boundary = '1'
[]
[max_p_side_diff]
type = DifferencePostprocessor
value1 = max_p_side
value2 = max_p_side_output
[]
[avg_p]
type = NekVolumeAverage
field = pressure
[]
[avg_p_output]
type = ElementAverageValue
variable = P
[]
[avg_p_diff]
type = DifferencePostprocessor
value1 = avg_p
value2 = avg_p_output
[]
[avg_Vx]
type = NekVolumeAverage
field = velocity_x
[]
[avg_Vx_output]
type = ElementAverageValue
variable = vel_x
[]
[avg_Vx_diff]
type = DifferencePostprocessor
value1 = avg_Vx
value2 = avg_Vx_output
[]
[avg_Vy]
type = NekVolumeAverage
field = velocity_y
[]
[avg_Vy_output]
type = ElementAverageValue
variable = vel_y
[]
[avg_Vy_diff]
type = DifferencePostprocessor
value1 = avg_Vy
value2 = avg_Vy_output
[]
[avg_Vx_side]
type = NekSideAverage
field = velocity_x
boundary = '1'
[]
[avg_Vx_side_output]
type = SideAverageValue
variable = vel_x
boundary = '1'
[]
[avg_Vx_side_diff]
type = DifferencePostprocessor
value1 = avg_Vx_side
value2 = avg_Vx_side_output
[]
[avg_Vy_side]
type = NekSideAverage
field = velocity_y
boundary = '1'
[]
[avg_Vy_side_output]
type = SideAverageValue
variable = vel_y
boundary = '1'
[]
[avg_Vy_side_diff]
type = DifferencePostprocessor
value1 = avg_Vy_side
value2 = avg_Vy_side_output
[]
[avg_p_side]
type = NekSideAverage
field = pressure
boundary = '1'
[]
[avg_p_side_output]
type = SideAverageValue
variable = P
boundary = '1'
[]
[avg_p_side_diff]
type = DifferencePostprocessor
value1 = avg_p_side
value2 = avg_p_side_output
[]
[]
[Outputs]
csv = true
exodus = true
execute_on = 'final'
hide = 'max_Vx_output min_Vx_output max_Vy_output min_Vy_output max_p_output min_p_output area_output volume_output max_Vx_side max_Vx_side_output max_Vy_side max_Vy_side_output max_p_side max_p_side_output min_Vx_side min_Vx_side_output min_Vy_side min_Vy_side_output min_p_side min_p_side_output avg_p avg_p_output avg_Vx avg_Vx_output avg_Vy avg_Vy_output avg_Vx_side avg_Vx_side_output avg_Vy_side avg_Vy_side_output avg_p_side avg_p_side_output max_Vx max_Vy max_p min_Vx min_Vy min_p area'
[]
(tutorials/pebble_67/nek.i)
Re = 1460.0
dp = 0.06
cylinder_diameter = ${fparse 4.4 * dp}
density = 3.645
C = 3121.0
mu = 2.93e-5
power = 2400.0
inlet_area = ${fparse pi * cylinder_diameter^2 / 4.0}
[Mesh]
type = NekRSMesh
boundary = 4
scaling = ${dp}
[]
[Problem]
type = NekRSProblem
casename = 'pb67'
n_usrwrk_slots = 2
[Dimensionalize]
L = ${dp}
U = ${fparse Re * mu / density / dp}
T = 523.0
dT = ${fparse power * dp / Re / inlet_area / mu / C}
rho = ${density}
Cp = ${C}
[]
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[temperature]
type = NekFieldVariable
direction = from_nek
[]
[velocity_x]
type = NekFieldVariable
direction = from_nek
[]
[velocity_y]
type = NekFieldVariable
direction = from_nek
[]
[velocity_z]
type = NekFieldVariable
direction = from_nek
[]
[]
synchronization_interval = parent_app
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
interval = 100
[]
[Postprocessors]
[max_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_nek_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[average_nek_pebble_T]
type = NekSideAverage
boundary = '4'
field = temperature
[]
[]
(test/tests/userobjects/subchannel_layered/type_error.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[]
[UserObjects]
[dummy]
type = NearestNodeNumberUO
point = '0.0 0.0 0.1'
[]
[vol_avg]
type = NekBinnedVolumeAverage
bins = 'dummy'
field = temperature
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/nek_mesh/sidesets/cube/exact_volume.i)
[Problem]
type = NekRSProblem
casename = 'cube'
[]
[Mesh]
type = NekRSMesh
volume = true
exact = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
file_base = 'nek_volume_out'
csv = true
[]
[Postprocessors]
[area_side1_nek]
type = NekSideIntegral
field = unity
boundary = '1'
[]
[area_side1_moose]
type = AreaPostprocessor
boundary = '1'
[]
[area_side2_nek]
type = NekSideIntegral
field = unity
boundary = '2'
[]
[area_side2_moose]
type = AreaPostprocessor
boundary = '2'
[]
[area_side3_nek]
type = NekSideIntegral
field = unity
boundary = '3'
[]
[area_side3_moose]
type = AreaPostprocessor
boundary = '3'
[]
[area_side4_nek]
type = NekSideIntegral
field = unity
boundary = '4'
[]
[area_side4_moose]
type = AreaPostprocessor
boundary = '4'
[]
[area_side5_nek]
type = NekSideIntegral
field = unity
boundary = '5'
[]
[area_side5_moose]
type = AreaPostprocessor
boundary = '5'
[]
[area_side6_nek]
type = NekSideIntegral
field = unity
boundary = '6'
[]
[area_side6_moose]
type = AreaPostprocessor
boundary = '6'
[]
[]
(test/tests/transfers/nek_postprocessor_value/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 2
[ScalarTransfers]
[inlet_V]
type = NekPostprocessorValue
direction = to_nek
usrwrk_slot = 0
[]
[inlet_T]
type = NekPostprocessorValue
direction = to_nek
usrwrk_slot = 1
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[inlet_V_max]
type = NekSideExtremeValue
boundary = '1'
field = velocity
value_type = max
[]
[inlet_V_min]
type = NekSideExtremeValue
boundary = '1'
field = velocity
value_type = min
[]
[inlet_T_max]
type = NekSideExtremeValue
boundary = '1'
field = temperature
value_type = max
[]
[inlet_T_min]
type = NekSideExtremeValue
boundary = '1'
field = temperature
value_type = min
[]
[]
[MultiApps]
[sub]
type = FullSolveMultiApp
input_files = 'cardinal_sub.i'
[]
[]
[Transfers]
[toNekRS_velocity_trans]
type = MultiAppPostprocessorTransfer
from_multi_app = sub
reduction_type = average
from_postprocessor = toNekRS_velocity
to_postprocessor = inlet_V
[]
[toNekRS_temperature_trans]
type = MultiAppPostprocessorTransfer
from_multi_app = sub
reduction_type = average
from_postprocessor = toNekRS_temperature
to_postprocessor = inlet_T
[]
[]
[Outputs]
csv = true
[]
(test/tests/nek_stochastic/read/read.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'read'
[FieldTransfers]
[scalar02]
type = NekFieldVariable
direction = from_nek
field = scalar02
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[max_scalar]
type = ElementExtremeValue
variable = scalar02
value_type = max
[]
[min_scalar]
type = ElementExtremeValue
variable = scalar02
value_type = min
[]
[]
[Outputs]
csv = true
[]
(test/tests/nek_file_output/nek_as_master/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/userobjects/gap/dimensional/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[AuxVariables]
[area]
family = MONOMIAL
order = CONSTANT
[]
[avg_T]
family = MONOMIAL
order = CONSTANT
[]
[avg_p]
family = MONOMIAL
order = CONSTANT
[]
[avg_v]
family = MONOMIAL
order = CONSTANT
[]
[integral_T]
family = MONOMIAL
order = CONSTANT
[]
[integral_p]
family = MONOMIAL
order = CONSTANT
[]
[integral_v]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[area]
type = SpatialUserObjectAux
variable = area
user_object = area
[]
[avg_T]
type = SpatialUserObjectAux
variable = avg_T
user_object = avg_T
[]
[avg_p]
type = SpatialUserObjectAux
variable = avg_p
user_object = avg_p
[]
[avg_v]
type = SpatialUserObjectAux
variable = avg_v
user_object = avg_v
[]
[integral_T]
type = SpatialUserObjectAux
variable = integral_T
user_object = integral_T
[]
[integral_p]
type = SpatialUserObjectAux
variable = integral_p
user_object = integral_p
[]
[integral_v]
type = SpatialUserObjectAux
variable = integral_v
user_object = integral_v
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[area]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = unity
[]
[avg_T]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = temperature
[]
[avg_p]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = pressure
[]
[avg_v]
type = NekBinnedVolumeAverage
bins = 'subchannel_binning axial_binning'
field = velocity
[]
[integral_T]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = temperature
[]
[integral_p]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = pressure
[]
[integral_v]
type = NekBinnedVolumeIntegral
bins = 'subchannel_binning axial_binning'
field = velocity
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel.i'
execute_on = timestep_end
[]
[]
[Transfers]
[uo1_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_T
to_multi_app = subchannel
variable = avg_T
[]
[uo2_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_p
to_multi_app = subchannel
variable = avg_p
[]
[uo3_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_v
to_multi_app = subchannel
variable = avg_v
[]
[uo4_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_T
to_multi_app = subchannel
variable = integral_T
[]
[uo5_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_p
to_multi_app = subchannel
variable = integral_p
[]
[uo6_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = integral_v
to_multi_app = subchannel
variable = integral_v
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
file_base = nek_dim
[]
(tutorials/gas_compact_cht/nek.i)
!include common_input.i
[Mesh]
type = NekRSMesh
boundary = '3'
volume = true
scaling = ${channel_diameter}
[]
[Problem]
type = NekRSProblem
casename = 'ranstube'
n_usrwrk_slots = 1
[Dimensionalize]
U = ${fparse mdot / (n_bundles * n_coolant_channels_per_block) / fluid_density / (pi * channel_diameter * channel_diameter / 4.0)}
T = ${inlet_T}
dT = ${fparse power / mdot / fluid_Cp * unit_cell_height / height}
L = ${channel_diameter}
rho = ${fluid_density}
Cp = ${fluid_Cp}
[]
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
[]
[temperature]
type = NekFieldVariable
direction = from_nek
[]
[]
synchronization_interval = parent_app
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
min_dt = 1e-10
[]
[]
[Outputs]
exodus = true
[screen]
type = Console
hide = 'boundary_flux inlet_T outlet_T max_T flux_integral transfer_in'
[]
[csv]
file_base = 'csv/nek'
type = CSV
[]
[]
[Postprocessors]
[boundary_flux]
type = NekHeatFluxIntegral
boundary = '3'
[]
[inlet_T]
type = NekSideAverage
field = temperature
boundary = '1'
[]
[outlet_T]
type = NekSideAverage
field = temperature
boundary = '2'
[]
[max_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[]
[UserObjects]
active = '' # simply comment out this line to evaluate these user objects
[layered_bin]
type = LayeredBin
num_layers = ${num_layers_for_plots}
direction = z
[]
[wall_temp]
type = NekBinnedSideAverage
bins = 'layered_bin'
boundary = '3'
field = temperature
map_space_by_qp = true
[]
[bulk_temp]
type = NekBinnedVolumeAverage
bins = 'layered_bin'
field = temperature
map_space_by_qp = true
[]
[]
[VectorPostprocessors]
active = '' # simply comment out this line to evaluate these user objects
[wall]
type = SpatialUserObjectVectorPostprocessor
userobject = wall_temp
[]
[bulk]
type = SpatialUserObjectVectorPostprocessor
userobject = bulk_temp
[]
[]
(test/tests/cht/nondimensional/nek.i)
[Problem]
type = NekRSProblem
casename = 'sfr_pin'
n_usrwrk_slots = 1
# This input is run in nondimensional form to verify that all the postprocessors
# and data transfers in/out of nekRS are properly dimensionalized.
[Dimensionalize]
U = 0.0950466
T = 628.15
dT = 50.0
L = 0.908e-2
rho = 834.5
Cp = 1228.0
[]
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = 0
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1'
# nekRS runs in non-dimensional form, which means that we shrunk the mesh
# from physical units of meters to our characteristic scale of 0.908e-2 m
# (the pin pitch, arbitrarily chosen). That means that we must multiply
# the nekRS mesh by 0.908e-2 to get back in units of meters that BISON is
# running in.
scaling = 0.908e-2
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[synchronization_in]
type = Receiver
[]
# side integral
[area_1]
type = NekSideIntegral
field = unity
boundary = '1'
[]
[pressure_1]
type = NekSideIntegral
field = pressure
boundary = '1'
[]
[temperature_1]
type = NekSideIntegral
field = temperature
boundary = '1'
[]
# side average
[avg_area_1]
type = NekSideAverage
field = unity
boundary = '1'
[]
[avg_pressure_1]
type = NekSideAverage
field = pressure
boundary = '1'
[]
[avg_temperature_1]
type = NekSideAverage
field = temperature
boundary = '1'
[]
# volume integral
[volume]
type = NekVolumeIntegral
field = unity
[]
[pressure_vol]
type = NekVolumeIntegral
field = pressure
[]
[temperature_vol]
type = NekVolumeIntegral
field = temperature
[]
# volume average
[avg_volume]
type = NekVolumeAverage
field = unity
[]
[avg_pressure_vol]
type = NekVolumeAverage
field = pressure
[]
[avg_temperature_vol]
type = NekVolumeAverage
field = temperature
[]
# heat flux integral
[nek_flux]
type = NekHeatFluxIntegral
boundary = '1'
[]
# mass flux weighted integral
[inlet_mdot]
type = NekMassFluxWeightedSideIntegral
field = unity
boundary = '3'
execute_on = initial
[]
[outlet_T]
type = NekMassFluxWeightedSideIntegral
field = temperature
boundary = '4'
[]
[inlet_P]
type = NekMassFluxWeightedSideIntegral
field = pressure
boundary = '4'
[]
# mass flux weighted integral
[inlet_mdot_avg]
type = NekMassFluxWeightedSideAverage
field = unity
boundary = '3'
execute_on = initial
[]
[outlet_T_avg]
type = NekMassFluxWeightedSideAverage
field = temperature
boundary = '4'
[]
[inlet_P_avg]
type = NekMassFluxWeightedSideAverage
field = pressure
boundary = '4'
[]
# extreme value postprocessors - VOLUME
[max_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[min_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[max_p]
type = NekVolumeExtremeValue
field = pressure
value_type = max
[]
[min_p]
type = NekVolumeExtremeValue
field = pressure
value_type = min
[]
[max_1]
type = NekVolumeExtremeValue
field = unity
value_type = max
[]
[min_1]
type = NekVolumeExtremeValue
field = unity
value_type = min
[]
# extreme value postprocessors - SIDE
[max_T_out]
type = NekSideExtremeValue
field = temperature
boundary = '4'
value_type = max
[]
[min_T_out]
type = NekSideExtremeValue
field = temperature
boundary = '4'
value_type = min
[]
[max_p_in]
type = NekSideExtremeValue
field = pressure
boundary = '3'
value_type = max
[]
[min_p_in]
type = NekSideExtremeValue
field = pressure
boundary = '3'
value_type = min
[]
[max_1_in]
type = NekSideExtremeValue
field = unity
boundary = '3'
value_type = max
[]
[min_1_in]
type = NekSideExtremeValue
field = unity
boundary = '3'
value_type = min
[]
[]
[Outputs]
exodus = true
execute_on = 'final'
[screen]
type = Console
hide = 'synchronization_in'
[]
[]
(test/tests/userobjects/side/dimensional/nek.i)
[GlobalParams]
check_boundary_restricted = false
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[AuxVariables]
[avg_T]
family = MONOMIAL
order = CONSTANT
[]
[avg_p]
family = MONOMIAL
order = CONSTANT
[]
[avg_v]
family = MONOMIAL
order = CONSTANT
[]
[integral_T]
family = MONOMIAL
order = CONSTANT
[]
[integral_p]
family = MONOMIAL
order = CONSTANT
[]
[integral_v]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[avg_T]
type = SpatialUserObjectAux
variable = avg_T
user_object = avg_T
boundary = '2'
[]
[avg_p]
type = SpatialUserObjectAux
variable = avg_p
user_object = avg_p
boundary = '2'
[]
[avg_v]
type = SpatialUserObjectAux
variable = avg_v
user_object = avg_v
boundary = '2'
[]
[integral_T]
type = SpatialUserObjectAux
variable = integral_T
user_object = integral_T
boundary = '2'
[]
[integral_p]
type = SpatialUserObjectAux
variable = integral_p
user_object = integral_p
boundary = '2'
[]
[integral_v]
type = SpatialUserObjectAux
variable = integral_v
user_object = integral_v
boundary = '2'
[]
[]
[UserObjects]
[x]
type = LayeredBin
direction = x
num_layers = 2
[]
[y]
type = LayeredBin
direction = y
num_layers = 2
[]
[z]
type = LayeredBin
direction = z
num_layers = 3
[]
[avg_T]
type = NekBinnedSideAverage
bins = 'x y z'
field = temperature
boundary = '2'
[]
[avg_p]
type = NekBinnedSideAverage
bins = 'x y z'
field = pressure
boundary = '2'
[]
[avg_v]
type = NekBinnedSideAverage
bins = 'x y z'
field = velocity
boundary = '2'
[]
[integral_T]
type = NekBinnedSideIntegral
bins = 'x y z'
field = temperature
boundary = '2'
[]
[integral_p]
type = NekBinnedSideIntegral
bins = 'x y z'
field = pressure
boundary = '2'
[]
[integral_v]
type = NekBinnedSideIntegral
bins = 'x y z'
field = velocity
boundary = '2'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
file_base = nek_dim
[]
(test/tests/conduction/zero_flux/nek_vpp.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 1
[FieldTransfers]
[avg_flux]
type = NekBoundaryFlux
usrwrk_slot = 0
direction = to_nek
conserve_flux_by_sideset = true
postprocessor_to_conserve = flux_integral
[]
[temp]
type = NekFieldVariable
field = temperature
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/nek_errors/usrwrk_transfers/nek.i)
[Mesh]
type = NekRSMesh
boundary = '6'
[]
[Problem]
type = NekRSProblem
casename = 'brick'
n_usrwrk_slots = 7
[FieldTransfers]
[flux]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = '1'
[]
[source]
type = NekBoundaryFlux
direction = to_nek
usrwrk_slot = '2'
[]
[]
[ScalarTransfers]
[scalar]
type = NekScalarValue
direction = to_nek
usrwrk_slot = '3'
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
(test/tests/cht/multi_cht/nek.i)
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'conj_ht'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[scalar01]
type = NekFieldVariable
direction = from_nek
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[volume_nek_fluid]
type = NekVolumeIntegral
field = unity
mesh = fluid
[]
[volume_nek_solid]
type = NekVolumeIntegral
field = unity
mesh = solid
[]
[volume_nek_all]
type = NekVolumeIntegral
field = unity
mesh = all
[]
[volume_moose_fluid]
type = VolumePostprocessor
block = '0'
[]
[volume_moose_solid]
type = VolumePostprocessor
block = '1'
[]
[volume_moose_all]
type = VolumePostprocessor
[]
[int_T_nek_fluid]
type = NekVolumeIntegral
field = temperature
mesh = fluid
[]
[int_T_nek_solid]
type = NekVolumeIntegral
field = temperature
mesh = solid
[]
[int_T_nek_all]
type = NekVolumeIntegral
field = temperature
mesh = all
[]
[int_T_moose_fluid]
type = ElementIntegralVariablePostprocessor
variable = temp
block = '0'
[]
[int_T_moose_solid]
type = ElementIntegralVariablePostprocessor
variable = temp
block = '1'
[]
[int_T_moose_all]
type = ElementIntegralVariablePostprocessor
variable = temp
[]
[int_p_nek_fluid]
type = NekVolumeIntegral
field = pressure
mesh = fluid
[]
[int_p_nek_solid]
type = NekVolumeIntegral
field = pressure
mesh = solid
[]
[int_p_nek_all]
type = NekVolumeIntegral
field = pressure
mesh = all
[]
[int_p_moose_fluid]
type = ElementIntegralVariablePostprocessor
variable =P
block = '0'
[]
[int_p_moose_solid]
type = ElementIntegralVariablePostprocessor
variable = P
block = '1'
[]
[int_p_moose_all]
type = ElementIntegralVariablePostprocessor
variable = P
[]
[volume_avg_nek_fluid]
type = NekVolumeAverage
field = unity
mesh = fluid
[]
[volume_avg_nek_solid]
type = NekVolumeAverage
field = unity
mesh = solid
[]
[volume_avg_nek_all]
type = NekVolumeAverage
field = unity
mesh = all
[]
[avg_T_nek_fluid]
type = NekVolumeAverage
field = temperature
mesh = fluid
[]
[avg_T_nek_solid]
type = NekVolumeAverage
field = temperature
mesh = solid
[]
[avg_T_nek_all]
type = NekVolumeAverage
field = temperature
mesh = all
[]
[avg_T_moose_fluid]
type = ElementAverageValue
variable = temp
block = '0'
[]
[avg_T_moose_solid]
type = ElementAverageValue
variable = temp
block = '1'
[]
[avg_T_moose_all]
type = ElementAverageValue
variable = temp
[]
[avg_p_nek_fluid]
type = NekVolumeAverage
field = pressure
mesh = fluid
[]
[avg_p_nek_solid]
type = NekVolumeAverage
field = pressure
mesh = solid
[]
[avg_p_nek_all]
type = NekVolumeAverage
field = pressure
mesh = all
[]
[avg_p_moose_fluid]
type = ElementAverageValue
variable = P
block = '0'
[]
[avg_p_moose_solid]
type = ElementAverageValue
variable = P
block = '1'
[]
[avg_p_moose_all]
type = ElementAverageValue
variable = P
[]
[max_T_nek_fluid]
type = NekVolumeExtremeValue
field = temperature
mesh = fluid
[]
[max_T_nek_solid]
type = NekVolumeExtremeValue
field = temperature
mesh = solid
[]
[max_T_nek_all]
type = NekVolumeExtremeValue
field = temperature
mesh = all
[]
[max_T_moose_fluid]
type = NodalExtremeValue
variable = temp
block = '0'
[]
[max_T_moose_solid]
type = NodalExtremeValue
variable = temp
block = '1'
[]
[max_T_moose_all]
type = NodalExtremeValue
variable = temp
[]
[min_T_nek_fluid]
type = NekVolumeExtremeValue
field = temperature
value_type = min
mesh = fluid
[]
[min_T_nek_solid]
type = NekVolumeExtremeValue
field = temperature
value_type = min
mesh = solid
[]
[min_T_nek_all]
type = NekVolumeExtremeValue
field = temperature
value_type = min
mesh = all
[]
[min_T_moose_fluid]
type = NodalExtremeValue
variable = temp
value_type = min
block = '0'
[]
[min_T_moose_solid]
type = NodalExtremeValue
variable = temp
value_type = min
block = '1'
[]
[min_T_moose_all]
type = NodalExtremeValue
variable = temp
value_type = min
[]
# we include these to show that the extrema postprocessors do properly fetch the true max/min
# when the max/min is in either the solid or the fluid domain
[min_q_nek_fluid]
type = NekVolumeExtremeValue
field = scalar01
value_type = min
mesh = fluid
[]
[min_q_nek_solid]
type = NekVolumeExtremeValue
field = scalar01
value_type = min
mesh = solid
[]
[min_q_nek_all]
type = NekVolumeExtremeValue
field = scalar01
value_type = min
mesh = all
[]
[min_q_moose_fluid]
type = NodalExtremeValue
variable = scalar01
value_type = min
block = '0'
[]
[min_q_moose_solid]
type = NodalExtremeValue
variable = scalar01
value_type = min
block = '1'
[]
[min_q_moose_all]
type = NodalExtremeValue
variable = scalar01
value_type = min
[]
[]
[Outputs]
csv = true
exodus = true
[]
(test/tests/sockeye_coupling/sockeye_sub/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
boundary = '1 2 3 4 5 6 7 8'
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
# We just want to check that Cardinal can run Sockeye as a sub-app.
# We omit all transfers just to check that the code executes.
[MultiApps]
[sockeye]
type = TransientMultiApp
app_type = SockeyeApp
input_files = 'flow_only_convection.i'
execute_on = timestep_end
[]
[]
(test/tests/postprocessors/nek_pressure_surface_force/nek_nondimensional.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[Dimensionalize]
L = 0.5
U = 0.9
rho = 0.8
[]
[FieldTransfers]
[P]
type = NekFieldVariable
field = pressure
direction = from_nek
[]
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 0.5
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[pressure_x]
type = NekPressureSurfaceForce
boundary = '1 2 3 4 5 6'
component = 'x'
mesh = 'fluid'
[]
[pressure_y]
type = NekPressureSurfaceForce
boundary = '1 2 3 4 5 6'
component = 'y'
mesh = 'fluid'
[]
[pressure_z]
type = NekPressureSurfaceForce
boundary = '1 2 3 4 5 6'
component = 'z'
mesh = 'fluid'
[]
# These are added to compare by hand
[pressure_x_3]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '3'
[]
[pressure_x_4]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '4'
[]
[pressure_x_comp]
type = DifferencePostprocessor
value1 = pressure_x_3
value2 = pressure_x_4
[]
[pressure_y_1]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '1'
[]
[pressure_y_2]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '2'
[]
[pressure_y_comp]
type = DifferencePostprocessor
value1 = pressure_y_1
value2 = pressure_y_2
[]
[pressure_z_6]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '6'
[]
[pressure_z_5]
type = SideIntegralVariablePostprocessor
variable = P
boundary = '5'
[]
[pressure_z_comp]
type = DifferencePostprocessor
value1 = pressure_z_6
value2 = pressure_z_5
[]
[]
(test/tests/userobjects/layered_layered/1d.i)
[Problem]
type = NekRSProblem
casename = 'brick'
[Dimensionalize]
L = 2.0
U = 1.0
rho = 834.5
Cp = 1228.0
T = 573.0
dT = 10.0
[]
[]
[Mesh]
type = NekRSMesh
volume = true
scaling = 2.0
[]
[AuxVariables]
[uo]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[uo]
type = SpatialUserObjectAux
variable = uo
user_object = vol_integral
[]
[]
[UserObjects]
[x_bins]
type = LayeredBin
direction = x
num_layers = 3
[]
[x_bins_gaps]
type = LayeredGapBin
direction = x
num_layers = 3
[]
[vol_integral]
type = NekBinnedVolumeIntegral
bins = 'x_bins'
field = pressure
[]
[face_avg]
type = NekBinnedPlaneAverage
bins = 'x_bins_gaps'
gap_thickness = 0.1
map_space_by_qp = true
field = pressure
[]
[]
[VectorPostprocessors]
# from_uo gives exactly the same results as manually specifying the points in 'manually_provided'
[from_uo]
type = SpatialUserObjectVectorPostprocessor
userobject = vol_integral
[]
[manually_provided]
type = SpatialUserObjectVectorPostprocessor
userobject = vol_integral
points = '-0.66666667 0.0 0.0
0.0 0.0 0.0
0.66666667 0.0 0.0'
[]
[from_uo_gap]
type = SpatialUserObjectVectorPostprocessor
userobject = face_avg
[]
[manually_provided_gap]
type = SpatialUserObjectVectorPostprocessor
userobject = face_avg
points = '-1.0 0.0 0.0
-0.33333 0.0 0.0
0.33333 0.0 0.0
1.0 0.0 0.0'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
exodus = true
execute_on = 'final'
[]
(test/tests/nek_standalone/adaptive_dt/nek.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
csv = true
[]
[Postprocessors]
[time]
type = TimePostprocessor
execute_on = 'initial timestep_begin'
[]
[]
(tutorials/restart_nek_and_moose/create_checkpoints/nek.i)
[Problem]
type = NekRSProblem
casename = pyramid
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
[temperature_average]
type = NekVolumeAverage
field = temperature
[]
[pressure_average]
type = NekVolumeAverage
field = pressure
[]
[velocity_average]
type = NekVolumeAverage
field = velocity
[]
[x_velocity_average]
type = NekVolumeAverage
field = velocity_x
[]
[y_velocity_average]
type = NekVolumeAverage
field = velocity_y
[]
[z_velocity_average]
type = NekVolumeAverage
field = velocity_z
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
input_files = 'cardinal_sub.i'
execute_on = 'timestep_begin'
[]
[]
(test/tests/nek_standalone/lowMach/nek.i)
[Mesh]
type = NekRSMesh
volume = true
order = SECOND
[]
[Problem]
type = NekRSProblem
casename = 'lowMach'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[P]
type = NekFieldVariable
direction = from_nek
field = pressure
[]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Postprocessors]
# All the following postprocessors are applying operations both (a) directly to the NekRS
# solution arrays, and (b) to the variables extracted with the 'outputs = ...' syntax.
# Rather than check the actual values of these postprocessors (which might change if the
# NekRS development team changes the nature of their CI tests), we can just check that
# the difference between the Nek-style postprocessors from the MOOSE-style postprocessors
# (acting on the extract solution) are nearly zero. We only check the absolute value of
# the min/max volume values for Vx, temperature, and pressure because those values are printed to
# the screen and offer quick confirmation of any changes that are due to changes in NekRS itself.
[max_Vx]
type = NekVolumeExtremeValue
field = velocity_x
value_type = max
[]
[max_Vx_output]
type = NodalExtremeValue
variable = vel_x
value_type = max
[]
[max_Vx_diff]
type = DifferencePostprocessor
value1 = max_Vx
value2 = max_Vx_output
[]
[min_Vx]
type = NekVolumeExtremeValue
field = velocity_x
value_type = min
[]
[min_Vx_output]
type = NodalExtremeValue
variable = vel_x
value_type = min
[]
[min_Vx_diff]
type = DifferencePostprocessor
value1 = min_Vx
value2 = min_Vx_output
[]
[max_p]
type = NekVolumeExtremeValue
field = pressure
value_type = max
[]
[max_p_output]
type = NodalExtremeValue
variable = P
value_type = max
[]
[max_p_diff]
type = DifferencePostprocessor
value1 = max_p
value2 = max_p_output
[]
[min_p]
type = NekVolumeExtremeValue
field = pressure
value_type = min
[]
[min_p_output]
type = NodalExtremeValue
variable = P
value_type = min
[]
[min_p_diff]
type = DifferencePostprocessor
value1 = min_p
value2 = min_p_output
[]
[max_T]
type = NekVolumeExtremeValue
field = temperature
value_type = max
[]
[max_T_output]
type = NodalExtremeValue
variable = temp
value_type = max
[]
[max_T_diff]
type = DifferencePostprocessor
value1 = max_T
value2 = max_T_output
[]
[min_T]
type = NekVolumeExtremeValue
field = temperature
value_type = min
[]
[min_T_output]
type = NodalExtremeValue
variable = temp
value_type = min
[]
[min_T_diff]
type = DifferencePostprocessor
value1 = min_T
value2 = min_T_output
[]
[area]
type = NekSideIntegral
field = unity
boundary = '1'
[]
[area_output]
type = AreaPostprocessor
boundary = '1'
[]
[area_diff]
type = DifferencePostprocessor
value1 = area
value2 = area_output
[]
[volume]
type = NekVolumeIntegral
field = unity
[]
[volume_output]
type = VolumePostprocessor
[]
[volume_diff]
type = DifferencePostprocessor
value1 = volume
value2 = volume_output
[]
[max_T_side]
type = NekSideExtremeValue
field = temperature
value_type = max
boundary = '1'
[]
[max_T_side_output]
type = NodalExtremeValue
variable = temp
value_type = max
boundary = '1'
[]
[max_T_side_diff]
type = DifferencePostprocessor
value1 = max_T_side
value2 = max_T_side_output
[]
[min_T_side]
type = NekSideExtremeValue
field = temperature
value_type = min
boundary = '1'
[]
[min_T_side_output]
type = NodalExtremeValue
variable = temp
value_type = min
boundary = '1'
[]
[min_T_side_diff]
type = DifferencePostprocessor
value1 = min_T_side
value2 = min_T_side_output
[]
[max_Vx_side]
type = NekSideExtremeValue
field = velocity_x
value_type = max
boundary = '1'
[]
[max_Vx_side_output]
type = NodalExtremeValue
variable = vel_x
value_type = max
boundary = '1'
[]
[max_Vx_side_diff]
type = DifferencePostprocessor
value1 = max_Vx_side
value2 = max_Vx_side_output
[]
[min_Vx_side]
type = NekSideExtremeValue
field = velocity_x
value_type = min
boundary = '1'
[]
[min_Vx_side_output]
type = NodalExtremeValue
variable = vel_x
value_type = min
boundary = '1'
[]
[min_Vx_side_diff]
type = DifferencePostprocessor
value1 = min_Vx_side
value2 = min_Vx_side_output
[]
[max_p_side]
type = NekSideExtremeValue
field = pressure
value_type = max
boundary = '1'
[]
[max_p_side_output]
type = NodalExtremeValue
variable = P
value_type = max
boundary = '1'
[]
[min_p_side_diff]
type = DifferencePostprocessor
value1 = min_p_side
value2 = min_p_side_output
[]
[min_p_side]
type = NekSideExtremeValue
field = pressure
value_type = min
boundary = '1'
[]
[min_p_side_output]
type = NodalExtremeValue
variable = P
value_type = min
boundary = '1'
[]
[max_p_side_diff]
type = DifferencePostprocessor
value1 = max_p_side
value2 = max_p_side_output
[]
[avg_T]
type = NekVolumeAverage
field = temperature
[]
[avg_T_output]
type = ElementAverageValue
variable = temp
[]
[avg_T_diff]
type = DifferencePostprocessor
value1 = avg_T
value2 = avg_T_output
[]
[avg_Vx]
type = NekVolumeAverage
field = velocity_x
[]
[avg_Vx_output]
type = ElementAverageValue
variable = vel_x
[]
[avg_Vx_diff]
type = DifferencePostprocessor
value1 = avg_Vx
value2 = avg_Vx_output
[]
[avg_T_side]
type = NekSideAverage
field = temperature
boundary = '1'
[]
[avg_T_side_output]
type = SideAverageValue
variable = temp
boundary = '1'
[]
[avg_T_side_diff]
type = DifferencePostprocessor
value1 = avg_T_side
value2 = avg_T_side_output
[]
[avg_Vx_side]
type = NekSideAverage
field = velocity_x
boundary = '1'
[]
[avg_Vx_side_output]
type = SideAverageValue
variable = vel_x
boundary = '1'
[]
[avg_Vx_side_diff]
type = DifferencePostprocessor
value1 = avg_Vx_side
value2 = avg_Vx_side_output
[]
[avg_p_side]
type = NekSideAverage
field = pressure
boundary = '1'
[]
[avg_p_side_output]
type = SideAverageValue
variable = P
boundary = '1'
[]
[avg_p_side_diff]
type = DifferencePostprocessor
value1 = avg_p_side
value2 = avg_p_side_output
[]
[]
[Outputs]
csv = true
exodus = true
execute_on = 'final'
hide = 'max_Vx_output min_Vx_output max_p_output min_p_output area_output volume_output max_Vx_side max_Vx_side_output max_p_side max_p_side_output min_Vx_side min_Vx_side_output min_p_side min_p_side_output avg_Vx avg_Vx_output avg_Vx_side avg_Vx_side_output avg_p_side avg_p_side_output max_T_output min_T_output max_T_side max_T_side_output min_T_side min_T_side_output avg_T avg_T_output avg_T_side avg_T_side_output'
[]
(test/tests/userobjects/hexagonal_gap_layered/normals/nek.i)
gap_thickness = ${fparse 0.05 * 7.646e-3}
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[FieldTransfers]
[vel_x]
type = NekFieldVariable
direction = from_nek
field = velocity_x
[]
[vel_y]
type = NekFieldVariable
direction = from_nek
field = velocity_y
[]
[vel_z]
type = NekFieldVariable
direction = from_nek
field = velocity_z
[]
[]
[]
[AuxVariables]
# These are just for visualizing the average velocity component with Glyphs in paraview;
# the result of the 'vol_avg' user object will be represented as a vector "uo_" with 3 components
[uo_x]
family = MONOMIAL
order = CONSTANT
[]
[uo_y]
family = MONOMIAL
order = CONSTANT
[]
[uo_z]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[uo_x]
type = NekSpatialBinComponentAux
variable = uo_x
user_object = avg_velocity_component
component = 0
[]
[uo_y]
type = NekSpatialBinComponentAux
variable = uo_y
user_object = avg_velocity_component
component = 1
[]
[uo_z]
type = NekSpatialBinComponentAux
variable = uo_z
user_object = avg_velocity_component
component = 2
[]
[]
[UserObjects]
[subchannel_binning]
type = HexagonalSubchannelGapBin
bundle_pitch = 0.02583914354890463
pin_pitch = 0.0089656996
pin_diameter = 7.646e-3
n_rings = 2
[]
[axial_binning]
type = LayeredBin
direction = z
num_layers = 6
[]
[avg_velocity_component]
type = NekBinnedPlaneAverage
bins = 'subchannel_binning'
field = velocity_component
velocity_component = normal
gap_thickness = ${gap_thickness}
map_space_by_qp = true
[]
[]
[MultiApps]
[subchannel]
type = TransientMultiApp
input_files = 'subchannel.i'
execute_on = timestep_end
[]
[]
[Transfers]
[uo1_to_sub]
type = MultiAppGeneralFieldUserObjectTransfer
source_user_object = avg_velocity_component
to_multi_app = subchannel
variable = avg_velocity_component
[]
[uox_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
source_variable = uo_x
variable = uo_x
[]
[uoy_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
source_variable = uo_y
variable = uo_y
[]
[uoz_to_sub]
type = MultiAppGeneralFieldNearestLocationTransfer
to_multi_app = subchannel
source_variable = uo_z
variable = uo_z
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[Outputs]
exodus = true
[]
(test/tests/userobjects/sideset_layered/side_average.i)
[GlobalParams]
map_space_by_qp = true
check_boundary_restricted = false
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Problem]
type = NekRSProblem
casename = 'sfr_7pin'
[FieldTransfers]
[temp]
type = NekFieldVariable
direction = from_nek
field = temperature
[]
[]
[]
[AuxVariables]
[avg_T_duct_wall]
family = MONOMIAL
order = CONSTANT
[]
[]
[AuxKernels]
[avg_T_duct_wall]
type = SpatialUserObjectAux
variable = avg_T_duct_wall
user_object = avg_T_duct_wall
boundary = '2'
[]
[]
[UserObjects]
[x]
type = LayeredBin
direction = x
num_layers = 2
[]
[y]
type = LayeredBin
direction = y
num_layers = 2
[]
[z]
type = LayeredBin
direction = z
num_layers = 3
[]
[avg_T_duct_wall]
type = NekBinnedSideAverage
bins = 'x y z'
field = temperature
boundary = '2'
[]
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]
[VectorPostprocessors]
[temp_duct]
type = SpatialUserObjectVectorPostprocessor
userobject = avg_T_duct_wall
[]
[]
[Outputs]
csv = true
exodus = true
[]
(test/tests/nek_output/nek_fld.i)
[Problem]
type = NekRSProblem
casename = 'pyramid'
n_usrwrk_slots = 2
usrwrk_output = '2'
usrwrk_output_prefix = 'ax'
[]
[Mesh]
type = NekRSMesh
volume = true
[]
[Executioner]
type = Transient
[TimeStepper]
type = NekTimeStepper
[]
[]