[P]arallel [Hi]gh-order [Li]brary for [P]DEs
Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
|
parent class to add the objective function directly to physics as a virtual class More...
#include <diffusion_exact_adjoint.h>
Public Member Functions | |
diffusion_objective (const Parameters::AllParameters *const parameters_input, const bool convection, const bool diffusion, std::shared_ptr< ManufacturedSolutionFunction< dim, real >> manufactured_solution_function) | |
constructor | |
virtual real | objective_function (const dealii::Point< dim, real > &pos) const =0 |
defnined directly as part of the physics to make passing to the functional simpler | |
![]() | |
ConvectionDiffusion (const Parameters::AllParameters *const parameters_input, const bool convection=true, const bool diffusion=true, const dealii::Tensor< 2, 3, double > input_diffusion_tensor=Parameters::ManufacturedSolutionParam::get_default_diffusion_tensor(), const dealii::Tensor< 1, 3, double > input_advection_vector=Parameters::ManufacturedSolutionParam::get_default_advection_vector(), const double input_diffusion_coefficient=Parameters::ManufacturedSolutionParam::get_default_diffusion_coefficient(), std::shared_ptr< ManufacturedSolutionFunction< dim, real > > manufactured_solution_function=nullptr, const Parameters::AllParameters::TestType parameters_test=Parameters::AllParameters::TestType::run_control, const bool has_nonzero_physical_source=false) | |
Constructor. | |
std::array< dealii::Tensor< 1, dim, real >, nstate > | convective_flux (const std::array< real, nstate > &solution) const |
Convective flux: \( \mathbf{F}_{conv} = u \). | |
std::array< dealii::Tensor< 1, dim, real >, nstate > | convective_numerical_split_flux (const std::array< real, nstate > &soln1, const std::array< real, nstate > &soln2) const override |
Convective numerical split flux for split form. | |
std::array< real, nstate > | compute_entropy_variables (const std::array< real, nstate > &conservative_soln) const |
Computes the entropy variables. | |
std::array< real, nstate > | compute_conservative_variables_from_entropy_variables (const std::array< real, nstate > &entropy_var) const |
Computes the conservative variables from the entropy variables. | |
std::array< real, nstate > | convective_eigenvalues (const std::array< real, nstate > &, const dealii::Tensor< 1, dim, real > &) const |
Spectral radius of convective term Jacobian is 'c'. | |
real | max_convective_eigenvalue (const std::array< real, nstate > &soln) const |
Maximum convective eigenvalue. | |
real | max_viscous_eigenvalue (const std::array< real, nstate > &soln) const |
Maximum viscous eigenvalue. | |
std::array< dealii::Tensor< 1, dim, real >, nstate > | dissipative_flux (const std::array< real, nstate > &solution, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient, const dealii::types::global_dof_index cell_index) const |
Dissipative flux: u. | |
std::array< dealii::Tensor< 1, dim, real >, nstate > | dissipative_flux (const std::array< real, nstate > &solution, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient) const |
(function overload) Dissipative flux: u | |
std::array< real, nstate > | source_term (const dealii::Point< dim, real > &pos, const std::array< real, nstate > &solution, const real current_time, const dealii::types::global_dof_index cell_index) const |
Source term is zero or depends on manufactured solution. | |
std::array< real, nstate > | source_term (const dealii::Point< dim, real > &pos, const std::array< real, nstate > &solution, const real current_time) const |
(function overload) Source term is zero or depends on manufactured solution | |
void | boundary_face_values (const 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 > &, std::array< real, nstate > &, std::array< dealii::Tensor< 1, dim, real >, nstate > &) const |
If diffusion is present, assign Dirichlet boundary condition. More... | |
![]() | |
PhysicsBase (const Parameters::AllParameters *const parameters_input, const bool has_nonzero_diffusion_input, const bool has_nonzero_physical_source_input, const dealii::Tensor< 2, 3, double > input_diffusion_tensor=Parameters::ManufacturedSolutionParam::get_default_diffusion_tensor(), std::shared_ptr< ManufacturedSolutionFunction< dim, real > > manufactured_solution_function_input=nullptr) | |
Default constructor that will set the constants. | |
PhysicsBase (const Parameters::AllParameters *const parameters_input, const bool has_nonzero_diffusion_input, const bool has_nonzero_physical_source_input, std::shared_ptr< ManufacturedSolutionFunction< dim, real > > manufactured_solution_function_input=nullptr) | |
Constructor that will call default constructor. | |
virtual | ~PhysicsBase ()=default |
Virtual destructor required for abstract classes. | |
virtual real | max_convective_normal_eigenvalue (const std::array< real, nstate > &soln, const dealii::Tensor< 1, dim, real > &normal) const |
Maximum convective normal eigenvalue (used in Lax-Friedrichs) | |
virtual std::array< real, nstate > | physical_source_term (const dealii::Point< dim, real > &pos, const std::array< real, nstate > &solution, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient, const dealii::types::global_dof_index cell_index) const |
Physical source term that does require differentiation. | |
virtual std::array< real, nstate > | artificial_source_term (const real viscosity_coefficient, const dealii::Point< dim, real > &pos, const std::array< real, nstate > &solution) const |
Artificial source term that does not require differentiation stemming from artificial dissipation. | |
virtual dealii::Vector< double > | post_compute_derived_quantities_vector (const dealii::Vector< double > &uh, const std::vector< dealii::Tensor< 1, dim > > &, const std::vector< dealii::Tensor< 2, dim > > &, const dealii::Tensor< 1, dim > &, const dealii::Point< dim > &) const |
Returns current vector solution to be used by PhysicsPostprocessor to output current solution. More... | |
virtual dealii::Vector< double > | post_compute_derived_quantities_scalar (const double &uh, const dealii::Tensor< 1, dim > &, const dealii::Tensor< 2, dim > &, const dealii::Tensor< 1, dim > &, const dealii::Point< dim > &) const |
Returns current scalar solution to be used by PhysicsPostprocessor to output current solution. More... | |
virtual std::vector< std::string > | post_get_names () const |
Returns names of the solution to be used by PhysicsPostprocessor to output current solution. More... | |
virtual std::vector< dealii::DataComponentInterpretation::DataComponentInterpretation > | post_get_data_component_interpretation () const |
Returns DataComponentInterpretation of the solution to be used by PhysicsPostprocessor to output current solution. More... | |
virtual dealii::UpdateFlags | post_get_needed_update_flags () const |
Returns required update flags of the solution to be used by PhysicsPostprocessor to output current solution. More... | |
template<typename real2 > | |
real2 | handle_non_physical_result (const std::string message="") const |
Function to handle nonphysical results. More... | |
Static Public Member Functions | |
static double | default_diffusion_coefficient () |
negative one is used for the diffusion coefficient so that the problem becomes \(\nabla u(x) = f(x)\) | |
static dealii::Tensor< 2, 3, double > | default_diffusion_tensor () |
Default diffusion tensor is set for isotropic diffusion, \(D=I\). | |
Additional Inherited Members | |
![]() | |
using | NonPhysicalBehaviorEnum = Parameters::AllParameters::NonPhysicalBehaviorEnum |
![]() | |
const bool | hasConvection |
Turns ON/OFF convection term. | |
const bool | hasDiffusion |
const Parameters::AllParameters::TestType | test_type |
Allows convection diffusion to distinguish between different unsteady test types. More... | |
![]() | |
const bool | has_nonzero_diffusion |
Flag to signal that diffusion term is non-zero. | |
const bool | has_nonzero_physical_source |
Flag to signal that physical source term is non-zero. | |
const Parameters::AllParameters *const | all_parameters |
Pointer to parameters object. | |
const NonPhysicalBehaviorEnum | non_physical_behavior_type |
Determines type of nonphysical behavior. | |
std::shared_ptr< ManufacturedSolutionFunction< dim, real > > | manufactured_solution_function |
Manufactured solution function. | |
const double | BIG_NUMBER = 1e100 |
BIG_NUMBER which is returned in place of NaN according to handle_non_physical_result() More... | |
![]() | |
dealii::Tensor< 1, dim, real > | advection_speed () const |
Linear advection speed: c. | |
real | diffusion_coefficient () const |
Diffusion coefficient. | |
![]() | |
double | linear_advection_velocity [3] = { 1.1, -atan(1)*4.0 / exp(1), exp(1)/(atan(1)*4.0) } |
Linear advection velocity in x, y, and z directions. | |
double | diffusion_scaling_coeff = 0.1*atan(1)*4.0/exp(1) |
Diffusion scaling coefficient in front of the diffusion tensor. | |
![]() | |
dealii::ConditionalOStream | pcout |
ConditionalOStream. More... | |
dealii::Tensor< 2, dim, double > | diffusion_tensor |
Anisotropic diffusion matrix. More... | |
parent class to add the objective function directly to physics as a virtual class
Definition at line 99 of file diffusion_exact_adjoint.h.