21 "Outputs parameter gradients for the inputted optimization functions.");
23 "Optimization functions to test.");
26 std::vector<Point>(1, Point(0, 0, 0)),
27 "Points in domain to test the functions, default is single point at (0,0,0).");
28 params.
addParam<std::vector<Real>>(
"times",
29 std::vector<Real>(1, 0),
30 "Times to test the functions, default is single time at 0.");
36 _points(getParam<
std::vector<Point>>(
"points")),
37 _times(getParam<
std::vector<
Real>>(
"times"))
39 for (
const auto & fnm :
getParam<std::vector<FunctionName>>(
"functions"))
43 paramError(
"functions", fnm,
" is not an OptimizationFunction.");
48 const std::string vnm = fnm +
"_t" + std::to_string(t) +
"_p" + std::to_string(p);
59 const auto & fun = *it.first;
60 auto & vecs = it.second;
62 for (
const auto & t :
_times)
64 (*vecs[ind++]) = fun.parameterGradient(t, p);
const std::vector< Point > & _points
static InputParameters validParams()
OptimizationFunctionTest(const InputParameters ¶ms)
const std::vector< Real > & _times
static InputParameters validParams()
const T & getParam(const std::string &name) const
void paramError(const std::string ¶m, Args... args) const
VectorPostprocessorValue & declareVector(const std::string &vector_name)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Base class for functions used in inverse optimization The parameterDerivative function is used in adj...
const Function & getFunctionByName(const FunctionName &name) const
std::map< const OptimizationFunction *, std::vector< VectorPostprocessorValue * > > _functions
registerMooseObject("OptimizationTestApp", OptimizationFunctionTest)
auto index_range(const T &sizable)