Optimization Failure Analysis Report
Introduction
The FAR for Optimization describes the system functional and non-functional requirements that describe the expected interactions that the software shall provide.
Dependencies
The Optimization application is developed using MOOSE and is based on various modules, as such the FAR for Optimization is dependent upon the following documents.
Failure Analysis Requirements
The following is a complete list for all the requirements related to failure analysis for Optimization.
- optimization: Functions
- 11.3.2The system shall report an error if
- the size of value vector is wrong;
- x-coordinate data is wrong size;
- y-coordinate data is wrong size;
- z-coordinate data is wrong size;
- time data is wrong size;
Specification(s): error/v, error/x, error/y, error/z, error/t
Design: NearestReporterCoordinatesFunction
Issue(s): #22215
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 11.3.4The system shall support parsed function expressions with parameter values by
- computing parameter gradient;
- erroring if vector is incorrect size;
Specification(s): parsed_function/compute_gradient, parsed_function/wrong_vector_size
Design: ParsedOptimizationFunction
Issue(s): #21885
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunExceptionCSVDiff
- optimization: Misc
- 11.4.1The system shall throw out a warning when scalings are assigned to adjoint variable to remind users that no scaling will be performed for adjoint system.
Specification(s): scaling_factor_for_adjoint_variables
Design: SteadyAndAdjoint
Issue(s): #25646
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- optimization: Optimizationreporter
- 11.5.8The system shall throw an error when performing inverse optimization on mesh-based parameters if there is a mismatch between the number of parameters and the number of
- meshes;
- finite-element families;
- finite-element orders;
- initial conditions;
Specification(s): mismatch_errors/meshes, mismatch_errors/family, mismatch_errors/order, mismatch_errors/initial_condition
Design: ParameterMeshOptimizationParameterMeshFunction
Issue(s): #22995
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 11.5.9The system shall throw an error when performing inverse optimization on mesh-based parameters if the parameter function spaces do not match the space defined in the
- forward problem;
- adjoint problem;
Specification(s): interpolation_errors/forward, interpolation_errors/adjoint
Design: ParameterMeshOptimizationParameterMeshFunction
Issue(s): #22995
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
Prerequisite(s): 11.5.7
- 11.5.11The system shall correctly read in parameter data defined in the input file
- measurement data from the input file;
- with lower bounds, upper bounds and initial conditions provided for every parameter and measurement data from a CSV file;
- with lower bounds, upper bounds and initial conditions constant for each group and measurement data from a CSV file;
- with lower bounds, upper bounds and initial conditions are a mix of constant per group and every parameter in a group and measurement data from a CSV file;
- and error if parameters are provided but do not include a parameter for every group;
- and error if an incorrect number of parameters are provided for a group;
Specification(s): optimizationReporter/input, optimizationReporter/csv_paramBounds, optimizationReporter/csv_groupBounds, optimizationReporter/csv_mixBounds, optimizationReporter/missing_group_params, optimizationReporter/too_many_params
Design: OptimizationReporter
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunExceptionJSONDiff
- 11.5.15The system shall throw an error when parameter data is incorrectly defined
- by having input and mesh parameters for the same bound;
- by having a parameter not on the exodus mesh;
- by using nodal and elemental exodus variables to define parameter data in the same parameter group;
- by not having the same number of optimization timesteps and timesteps for reading parameter data from the mesh;
- by specifying a timestep for reading parameter data from the exodus file but not parameter data is being read from the mesh because it is all specified in the input file;
- by specifying a timestep that is bigger than the timestpes on the exodus the exodus mesh.
Specification(s): errors/errorMixedParams, errors/errorMissingMeshParam, errors/errorMixedParameterTypes, errors/errorMismatchSteps, errors/errorNoSteps, errors/errorBadStep
Design: ParameterMeshOptimization
Issue(s): #24034
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- optimization: Reporters
- 11.8.3The system shall throw a reasonable error when reducing a vectors of vectors into a single vector and the input vectors contained in the vector of vectors do not have the same size.
Specification(s): errorRowSum
Design: ParsedVectorRealReductionReporterParsedVectorVectorRealReductionReporterParsedVectorReporterParsedScalarReporter
Issue(s): #21885
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 11.8.4The system shall throw a reasonable error when the vectors being combined into a single vector using arithmetic operations are not the same size.
Specification(s): errorDotProduct
Design: ParsedVectorRealReductionReporterParsedVectorVectorRealReductionReporterParsedVectorReporterParsedScalarReporter
Issue(s): #21885
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- optimization: Userobjects
- 11.10.1The system shall be able to load a time-dependent solution from an exodus file while reversing the timesteps by
- producing the exodus file;
- loading on to the same mesh;
- loading on to a coarser mesh;
- interpolating different time steps;
- erroring if file is not exodus;
Specification(s): adjoint_solution/forward, adjoint_solution/reverse, adjoint_solution/reverse_space_interp, adjoint_solution/reverse_time_interp, adjoint_solution/error_file_format
Design: AdjointSolutionUserObject
Issue(s): #22215
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunExceptionCheckFilesRunApp