[P]arallel [Hi]gh-order [Li]brary for [P]DEs
Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
|
#include <target_wall_pressure.hpp>
Public Member Functions | |
real | evaluate_functional (const bool compute_dIdW=false, const bool compute_dIdX=false, const bool compute_d2I=false) override |
Evaluates the functional derivative with respect to the solution variable. More... | |
template<typename real2 > | |
real2 | evaluate_boundary_integrand (const PHiLiP::Physics::PhysicsBase< dim, nstate, real2 > &physics, const unsigned int boundary_id, const dealii::Point< dim, real2 > &, const dealii::Tensor< 1, dim, real2 > &, const std::array< real2, nstate > &soln_at_q, const std::array< real, nstate > &target_soln_at_q, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &) const |
Virtual function for computation of cell boundary functional term. More... | |
virtual real | evaluate_boundary_integrand (const PHiLiP::Physics::PhysicsBase< dim, nstate, real > &physics, const unsigned int boundary_id, const dealii::Point< dim, real > &phys_coord, const dealii::Tensor< 1, dim, real > &normal, const std::array< real, nstate > &soln_at_q, const std::array< real, nstate > &target_soln_at_q, const std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_at_q, const std::array< dealii::Tensor< 1, dim, real >, nstate > &target_soln_grad_at_q) const override |
Virtual function for computation of cell boundary functional term. More... | |
virtual FadFadType | evaluate_boundary_integrand (const PHiLiP::Physics::PhysicsBase< dim, nstate, FadFadType > &physics, const unsigned int boundary_id, const dealii::Point< dim, FadFadType > &phys_coord, const dealii::Tensor< 1, dim, FadFadType > &normal, const std::array< FadFadType, nstate > &soln_at_q, const std::array< real, nstate > &target_soln_at_q, const std::array< dealii::Tensor< 1, dim, FadFadType >, nstate > &soln_grad_at_q, const std::array< dealii::Tensor< 1, dim, FadFadType >, nstate > &target_soln_grad_at_q) const override |
Virtual function for Sacado computation of cell boundary functional term and derivatives. More... | |
virtual real | evaluate_volume_integrand (const PHiLiP::Physics::PhysicsBase< dim, nstate, real > &, const dealii::Point< dim, real > &, const std::array< real, nstate > &, const std::array< real, nstate > &, const std::array< dealii::Tensor< 1, dim, real >, nstate > &, const std::array< dealii::Tensor< 1, dim, real >, nstate > &) const override |
Virtual function for computation of cell volume functional term. More... | |
virtual FadFadType | evaluate_volume_integrand (const PHiLiP::Physics::PhysicsBase< dim, nstate, FadFadType > &, const dealii::Point< dim, FadFadType > &, const std::array< FadFadType, nstate > &, const std::array< real, nstate > &, const std::array< dealii::Tensor< 1, dim, FadFadType >, nstate > &, const std::array< dealii::Tensor< 1, dim, FadFadType >, nstate > &) const override |
Virtual function for Sacado computation of cell volume functional term and derivatives. More... | |
![]() | |
TargetFunctional (std::shared_ptr< DGBase< dim, real >> dg_input, const bool uses_solution_values=true, const bool uses_solution_gradient=true) | |
Constructor. More... | |
TargetFunctional (std::shared_ptr< DGBase< dim, real >> dg_input, const dealii::LinearAlgebra::distributed::Vector< real > &target_solution, const bool uses_solution_values=true, const bool uses_solution_gradient=true) | |
Constructor. More... | |
TargetFunctional (std::shared_ptr< DGBase< dim, real >> dg_input, std::shared_ptr< Physics::PhysicsBase< dim, nstate, Sacado::Fad::DFad< Sacado::Fad::DFad< real >>> > _physics_fad_fad, const bool uses_solution_values=true, const bool uses_solution_gradient=true) | |
Constructor. More... | |
TargetFunctional (std::shared_ptr< DGBase< dim, real >> dg_input, const dealii::LinearAlgebra::distributed::Vector< real > &target_solution, std::shared_ptr< Physics::PhysicsBase< dim, nstate, Sacado::Fad::DFad< Sacado::Fad::DFad< real >>> > _physics_fad_fad, const bool uses_solution_values=true, const bool uses_solution_gradient=true) | |
Constructor. More... | |
dealii::LinearAlgebra::distributed::Vector< real > | evaluate_dIdw_finiteDifferences (DGBase< dim, real > &dg, const PHiLiP::Physics::PhysicsBase< dim, nstate, real > &physics, const double stepsize) |
dealii::LinearAlgebra::distributed::Vector< real > | evaluate_dIdX_finiteDifferences (DGBase< dim, real > &dg, const PHiLiP::Physics::PhysicsBase< dim, nstate, real > &physics, const double stepsize) |
![]() | |
virtual | ~Functional ()=default |
Destructor. | |
Functional (std::shared_ptr< PHiLiP::DGBase< dim, real, dealii::parallel::distributed::Triangulation< dim > >> _dg, const bool _uses_solution_values=true, const bool _uses_solution_gradient=true) | |
Functional (std::shared_ptr< PHiLiP::DGBase< dim, real, dealii::parallel::distributed::Triangulation< dim > >> _dg, std::shared_ptr< PHiLiP::Physics::PhysicsBase< dim, nstate, Sacado::Fad::DFad< Sacado::Fad::DFad< real >> >> _physics_fad_fad, const bool _uses_solution_values=true, const bool _uses_solution_gradient=true) | |
void | set_state (const dealii::LinearAlgebra::distributed::Vector< real > &solution_set) |
void | set_geom (const dealii::LinearAlgebra::distributed::Vector< real > &volume_nodes_set) |
dealii::LinearAlgebra::distributed::Vector< real > | evaluate_dIdw_finiteDifferences (DGBase< dim, real, dealii::parallel::distributed::Triangulation< dim > > &dg, const PHiLiP::Physics::PhysicsBase< dim, nstate, real > &physics, const double stepsize) |
dealii::LinearAlgebra::distributed::Vector< real > | evaluate_dIdX_finiteDifferences (DGBase< dim, real, dealii::parallel::distributed::Triangulation< dim > > &dg, const PHiLiP::Physics::PhysicsBase< dim, nstate, real > &physics, const double stepsize) |
Private Types | |
using | FadType = Sacado::Fad::DFad< real > |
Sacado AD type for first derivatives. | |
using | FadFadType = Sacado::Fad::DFad< FadType > |
Sacado AD type that allows 2nd derivatives. | |
Additional Inherited Members | |
![]() | |
using | FadType = Sacado::Fad::DFad< real > |
Sacado AD type for first derivatives. | |
using | FadFadType = Sacado::Fad::DFad< FadType > |
Sacado AD type that allows 2nd derivatives. | |
![]() | |
std::shared_ptr< DGBase< dim, real, dealii::parallel::distributed::Triangulation< dim > > > | dg |
Smart pointer to DGBase. | |
real | current_functional_value |
Store the functional value from the last time evaluate_functional() was called. | |
dealii::LinearAlgebra::distributed::Vector< real > | dIdw |
Vector for storing the derivatives with respect to each solution DoF. | |
dealii::LinearAlgebra::distributed::Vector< real > | dIdX |
Vector for storing the derivatives with respect to each grid DoF. | |
std::shared_ptr< dealii::TrilinosWrappers::SparseMatrix > | d2IdWdW |
Sparse matrix for storing the functional partial second derivatives. | |
std::shared_ptr< dealii::TrilinosWrappers::SparseMatrix > | d2IdWdX |
Sparse matrix for storing the functional partial second derivatives. | |
std::shared_ptr< dealii::TrilinosWrappers::SparseMatrix > | d2IdXdX |
Sparse matrix for storing the functional partial second derivatives. | |
![]() | |
virtual real | evaluate_volume_cell_functional (const Physics::PhysicsBase< dim, nstate, real > &physics, const std::vector< real > &soln_coeff, const std::vector< real > &target_soln_coeff, const dealii::FESystem< dim > &fe_solution, const std::vector< real > &coords_coeff, const dealii::FESystem< dim > &fe_metric, const dealii::Quadrature< dim > &volume_quadrature) const |
Corresponding real function to evaluate a cell's volume functional. | |
virtual Sacado::Fad::DFad< Sacado::Fad::DFad< real > > | evaluate_volume_cell_functional (const Physics::PhysicsBase< dim, nstate, Sacado::Fad::DFad< Sacado::Fad::DFad< real >>> &physics_fad_fad, const std::vector< Sacado::Fad::DFad< Sacado::Fad::DFad< real >> > &soln_coeff, const std::vector< real > &target_soln_coeff, const dealii::FESystem< dim > &fe_solution, const std::vector< Sacado::Fad::DFad< Sacado::Fad::DFad< real >> > &coords_coeff, const dealii::FESystem< dim > &fe_metric, const dealii::Quadrature< dim > &volume_quadrature) const |
Corresponding FadFadType function to evaluate a cell's volume functional. | |
virtual real | evaluate_boundary_cell_functional (const Physics::PhysicsBase< dim, nstate, real > &physics, const unsigned int boundary_id, const std::vector< real > &soln_coeff, const std::vector< real > &target_soln_coeff, const dealii::FESystem< dim > &fe_solution, const std::vector< real > &coords_coeff, const dealii::FESystem< dim > &fe_metric, const dealii::Quadrature< dim-1 > &face_quadrature, const unsigned int face_number) const |
Corresponding real function to evaluate a cell's face functional. | |
virtual Sacado::Fad::DFad< Sacado::Fad::DFad< real > > | evaluate_boundary_cell_functional (const Physics::PhysicsBase< dim, nstate, Sacado::Fad::DFad< Sacado::Fad::DFad< real >>> &physics_fad_fad, const unsigned int boundary_id, const std::vector< Sacado::Fad::DFad< Sacado::Fad::DFad< real >> > &soln_coeff, const std::vector< real > &target_soln_coeff, const dealii::FESystem< dim > &fe_solution, const std::vector< Sacado::Fad::DFad< Sacado::Fad::DFad< real >> > &coords_coeff, const dealii::FESystem< dim > &fe_metric, const dealii::Quadrature< dim-1 > &face_quadrature, const unsigned int face_number) const |
Corresponding FadFadType function to evaluate a cell's face functional. | |
![]() | |
void | allocate_derivatives (const bool compute_dIdW, const bool compute_dIdX, const bool compute_d2I) |
Allocate and setup the derivative vectors/matrices. More... | |
void | allocate_dIdX (dealii::LinearAlgebra::distributed::Vector< real > &dIdX) const |
Allocate and setup the derivative dIdX vector. More... | |
void | set_derivatives (const bool compute_dIdW, const bool compute_dIdX, const bool compute_d2I, const Sacado::Fad::DFad< Sacado::Fad::DFad< real >> volume_local_sum, std::vector< dealii::types::global_dof_index > cell_soln_dofs_indices, std::vector< dealii::types::global_dof_index > cell_metric_dofs_indices) |
Set the derivative vectors/matrices. More... | |
void | need_compute (bool &compute_value, bool &compute_dIdW, bool &compute_dIdX, bool &compute_d2I) |
Checks which derivatives actually need to be recomputed. More... | |
real2 | evaluate_volume_cell_functional (const Physics::PhysicsBase< dim, nstate, real2 > &physics, const std::vector< real2 > &soln_coeff, const dealii::FESystem< dim > &fe_solution, const std::vector< real2 > &coords_coeff, const dealii::FESystem< dim > &fe_metric, const dealii::Quadrature< dim > &volume_quadrature) const |
Templated function to evaluate a cell's volume functional. | |
virtual real | evaluate_volume_cell_functional (const Physics::PhysicsBase< dim, nstate, real > &physics, const std::vector< real > &soln_coeff, const dealii::FESystem< dim > &fe_solution, const std::vector< real > &coords_coeff, const dealii::FESystem< dim > &fe_metric, const dealii::Quadrature< dim > &volume_quadrature) const |
Corresponding real function to evaluate a cell's volume functional. | |
virtual Sacado::Fad::DFad< Sacado::Fad::DFad< real > > | evaluate_volume_cell_functional (const Physics::PhysicsBase< dim, nstate, Sacado::Fad::DFad< Sacado::Fad::DFad< real >>> &physics_fad_fad, const std::vector< Sacado::Fad::DFad< Sacado::Fad::DFad< real >> > &soln_coeff, const dealii::FESystem< dim > &fe_solution, const std::vector< Sacado::Fad::DFad< Sacado::Fad::DFad< real >> > &coords_coeff, const dealii::FESystem< dim > &fe_metric, const dealii::Quadrature< dim > &volume_quadrature) const |
Corresponding FadFadType function to evaluate a cell's volume functional. | |
real2 | evaluate_boundary_cell_functional (const Physics::PhysicsBase< dim, nstate, real2 > &physics, const unsigned int boundary_id, const std::vector< real2 > &soln_coeff, const dealii::FESystem< dim > &fe_solution, const std::vector< real2 > &coords_coeff, const dealii::FESystem< dim > &fe_metric, const unsigned int face_number, const dealii::Quadrature< dim-1 > &face_quadrature) const |
Templated function to evaluate a cell's boundary functional. More... | |
virtual real | evaluate_boundary_cell_functional (const Physics::PhysicsBase< dim, nstate, real > &physics, const unsigned int boundary_id, const std::vector< real > &soln_coeff, const dealii::FESystem< dim > &fe_solution, const std::vector< real > &coords_coeff, const dealii::FESystem< dim > &fe_metric, const unsigned int face_number, const dealii::Quadrature< dim-1 > &face_quadrature) const |
Corresponding real function to evaluate a cell's boundary functional. | |
virtual Sacado::Fad::DFad< Sacado::Fad::DFad< real > > | evaluate_boundary_cell_functional (const Physics::PhysicsBase< dim, nstate, Sacado::Fad::DFad< Sacado::Fad::DFad< real >>> &physics_fad_fad, const unsigned int boundary_id, const std::vector< Sacado::Fad::DFad< Sacado::Fad::DFad< real >> > &soln_coeff, const dealii::FESystem< dim > &fe_solution, const std::vector< Sacado::Fad::DFad< Sacado::Fad::DFad< real >> > &coords_coeff, const dealii::FESystem< dim > &fe_metric, const unsigned int face_number, const dealii::Quadrature< dim-1 > &face_quadrature) const |
Corresponding FadFadType function to evaluate a cell's boundary functional. | |
virtual real | evaluate_volume_integrand (const PHiLiP::Physics::PhysicsBase< dim, nstate, real > &, const dealii::Point< dim, real > &, const std::array< real, nstate > &, const std::array< dealii::Tensor< 1, dim, real >, nstate > &) const |
Virtual function for computation of cell volume functional term. More... | |
virtual FadFadType | evaluate_volume_integrand (const PHiLiP::Physics::PhysicsBase< dim, nstate, FadFadType > &, const dealii::Point< dim, FadFadType > &, const std::array< FadFadType, nstate > &, const std::array< dealii::Tensor< 1, dim, FadFadType >, nstate > &) const |
Virtual function for Sacado computation of cell volume functional term and derivatives. More... | |
virtual real | evaluate_boundary_integrand (const PHiLiP::Physics::PhysicsBase< dim, nstate, real > &, const unsigned int, const dealii::Point< dim, real > &, const dealii::Tensor< 1, dim, real > &, const std::array< real, nstate > &, const std::array< dealii::Tensor< 1, dim, real >, nstate > &) const |
Virtual function for computation of cell boundary functional term. More... | |
virtual FadFadType | evaluate_boundary_integrand (const PHiLiP::Physics::PhysicsBase< dim, nstate, FadFadType > &, const unsigned int, const dealii::Point< dim, FadFadType > &, const dealii::Tensor< 1, dim, FadFadType > &, const std::array< FadFadType, nstate > &, const std::array< dealii::Tensor< 1, dim, FadFadType >, nstate > &) const |
Virtual function for Sacado computation of cell boundary functional term and derivatives. More... | |
![]() | |
const dealii::LinearAlgebra::distributed::Vector< real > | target_solution |
Solution used to evaluate target functional. | |
![]() | |
std::shared_ptr< Physics::PhysicsBase< dim, nstate, FadFadType > > | physics_fad_fad |
Physics that should correspond to the one in DGBase. | |
const dealii::UpdateFlags | volume_update_flags |
Update flags needed at volume points. | |
const dealii::UpdateFlags | face_update_flags |
Update flags needed at face points. | |
const bool | uses_solution_values |
Will evaluate solution values at quadrature points. | |
const bool | uses_solution_gradient |
Will evaluate solution gradient at quadrature points. | |
dealii::ConditionalOStream | pcout |
Parallel std::cout that only outputs on mpi_rank==0. | |
Target boundary values. Simply zero out the default volume contribution.
Definition at line 26 of file target_wall_pressure.hpp.
|
inline |
Virtual function for computation of cell boundary functional term.
Used only in the computation of evaluate_function(). If not overriden returns 0.
Definition at line 56 of file target_wall_pressure.hpp.
|
inlineoverridevirtual |
Virtual function for computation of cell boundary functional term.
Used only in the computation of evaluate_function(). If not overriden returns 0.
Reimplemented from PHiLiP::TargetFunctional< dim, nstate, real >.
Definition at line 87 of file target_wall_pressure.hpp.
|
inlineoverridevirtual |
Virtual function for Sacado computation of cell boundary functional term and derivatives.
Used only in the computation of evaluate_dIdw(). If not overriden returns 0.
Reimplemented from PHiLiP::TargetFunctional< dim, nstate, real >.
Definition at line 109 of file target_wall_pressure.hpp.
|
inlineoverridevirtual |
Evaluates the functional derivative with respect to the solution variable.
Loops over the discretized domain and determines the sensitivity of the functional value to each solution node. Computed from
\[ \left. \frac{\partial \mathcal{J}_h}{\partial \mathbf{u}} \right|_{\mathbf{u}_h} = \sum_{k=1}^{N_e} \left. \frac{\partial}{\partial \mathbf{u}} \int_{\Omega_h^k} g_{\Omega} \left( \mathbf{u}_h^k \right) \mathrm{d} \Omega \right|_{\mathbf{u}_h} + \sum_{k=1}^{N_b} \left. \frac{\partial}{\partial \mathbf{u}} \int_{\Gamma_h^k} g_{\Gamma} \left( \mathbf{u}_h^k \right) \mathrm{d} \Gamma \right|_{\mathbf{u}_h} \]
Calls the functions evaluate_volume_integrand() and evaluate_cell_boundary() to be overridden
Reimplemented from PHiLiP::TargetFunctional< dim, nstate, real >.
Definition at line 43 of file target_wall_pressure.hpp.
|
inlineoverridevirtual |
Virtual function for computation of cell volume functional term.
Used only in the computation of evaluate_function(). If not overriden returns 0.
Reimplemented from PHiLiP::TargetFunctional< dim, nstate, real >.
Definition at line 132 of file target_wall_pressure.hpp.
|
inlineoverridevirtual |
Virtual function for Sacado computation of cell volume functional term and derivatives.
Used only in the computation of evaluate_dIdw(). If not overriden returns 0.
Reimplemented from PHiLiP::TargetFunctional< dim, nstate, real >.
Definition at line 142 of file target_wall_pressure.hpp.