https://mooseframework.inl.gov
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 
21 public:
24 
25  virtual Real computeObjective() override;
26  virtual void computeGradient(libMesh::PetscVector<Number> & gradient) const override;
27 
28 protected:
29  virtual void setICsandBounds() override;
30 
31 private:
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 };
virtual void computeGradient(libMesh::PetscVector< Number > &gradient) const override
Function to compute gradient.
const std::vector< ParameterMesh::RegularizationType > _regularization_types
Regularization types to apply.
static InputParameters validParams()
const InputParameters & parameters() const
std::vector< std::unique_ptr< ParameterMesh > > _parameter_meshes
Store parameter meshes for regularization computation.
ParameterMeshOptimization(const InputParameters &parameters)
Mesh-based parameter optimization.
const std::vector< Real > _regularization_coeffs
Vector of regularization coefficients corresponding to each type.
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.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real computeObjective() override
Function to compute objective.
virtual void setICsandBounds() override
Sets the initial conditions and bounds right before it is needed.
Optimization reporter that interfaces with TAO.