https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ParameterMeshOptimization.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "GeneralOptimization.h"
13#include "ParameterMesh.h"
14
19{
20
21public:
24
25 virtual Real computeObjective() override;
26 virtual void computeGradient(libMesh::PetscVector<Number> & gradient) const override;
27
28protected:
29 virtual void setICsandBounds() override;
30
31private:
36 std::vector<Real> parseExodusData(const FEType fetype,
37 const FileName mesh_file_name,
38 const std::vector<unsigned int> & exodus_timestep,
39 const std::string & mesh_var_name) const;
40
42 std::vector<std::unique_ptr<ParameterMesh>> _parameter_meshes;
43
45 const std::vector<Real> _regularization_coeffs;
46
48 const std::vector<ParameterMesh::RegularizationType> _regularization_types;
49};
Optimization reporter that interfaces with TAO.
const InputParameters & parameters() const
Mesh-based parameter optimization.
const std::vector< Real > _regularization_coeffs
Vector of regularization coefficients corresponding to each type.
const std::vector< ParameterMesh::RegularizationType > _regularization_types
Regularization types to apply.
std::vector< Real > parseExodusData(const FEType fetype, const FileName mesh_file_name, const std::vector< unsigned int > &exodus_timestep, const std::string &mesh_var_name) const
Read initialization data off of parameter mesh and error check.
virtual void setICsandBounds() override
Sets the initial conditions and bounds right before it is needed.
std::vector< std::unique_ptr< ParameterMesh > > _parameter_meshes
Store parameter meshes for regularization computation.
virtual Real computeObjective() override
Function to compute objective.
static InputParameters validParams()
virtual void computeGradient(libMesh::PetscVector< Number > &gradient) const override
Function to compute gradient.