[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
PHiLiP::InnerVolParameterization< dim > Class Template Reference

Design parameterization w.r.t. inner volume nodes (i.e. volume nodes excluding those on the boundary). More...

#include <inner_vol_parameterization.hpp>

Inheritance diagram for PHiLiP::InnerVolParameterization< dim >:
Collaboration diagram for PHiLiP::InnerVolParameterization< dim >:

Public Member Functions

 InnerVolParameterization (std::shared_ptr< HighOrderGrid< dim, double >> _high_order_grid)
 Constructor.
 
void initialize_design_variables (VectorType &design_var) override
 Initializes design variables with inner volume nodes and set locally owned and ghost indices. Overrides the virtual function in base class.
 
void compute_dXv_dXp (MatrixType &dXv_dXp) const override
 Computes the derivative of volume nodes w.r.t. inner volume nodes. Overrides the virtual function in base class. More...
 
bool update_mesh_from_design_variables (const MatrixType &dXv_dXp, const VectorType &design_var) override
 Checks if the design variables have changed and updates inner volume nodes of high order grid.
 
unsigned int get_number_of_design_variables () const override
 Returns the number of design variables (i.e. no. of inner volume nodes).
 
void compute_inner_vol_index_to_vol_index ()
 Computes inner_vol_range IndexSet on each processor, along with n_inner_nodes and inner_vol_index_to_vol_index. More...
 
- Public Member Functions inherited from PHiLiP::BaseParameterization< dim >
 BaseParameterization (std::shared_ptr< HighOrderGrid< dim, double >> _high_order_grid)
 Constructor.
 
virtual ~BaseParameterization ()=default
 Destructor.
 
virtual void output_design_variables (const unsigned int) const
 Outputs design variables. Doesn't output anything if not overridden.
 
bool has_design_variable_been_updated (const VectorType &current_design_var, const VectorType &updated_design_var) const
 Checks if the design variable has changed.
 

Private Types

using VectorType = dealii::LinearAlgebra::distributed::Vector< double >
 Alias for dealii's parallel distributed vector.
 
using MatrixType = dealii::TrilinosWrappers::SparseMatrix
 Alias for dealii::TrilinosWrappers::SparseMatrix.
 

Private Attributes

VectorType current_design_var
 Current design variable. Stored to prevent recomputing if it is unchanged.
 
unsigned int n_inner_nodes
 No. of inner volume nodes.
 
dealii::IndexSet inner_vol_range
 Local indices of inner volume nodes.
 
dealii::LinearAlgebra::distributed::Vector< int > inner_vol_index_to_vol_index
 Converts inner volume index to global index of volume nodes.
 

Additional Inherited Members

- Public Attributes inherited from PHiLiP::BaseParameterization< dim >
std::shared_ptr< HighOrderGrid< dim, double > > high_order_grid
 Pointer to high order grid.
 
MPI_Comm mpi_communicator
 Alias for MPI_COMM_WORLD.
 
dealii::ConditionalOStream pcout
 std::cout only on processor #0.
 
int mpi_rank
 Processor# of current processor.
 
int n_mpi
 Total no. of processors.
 

Detailed Description

template<int dim>
class PHiLiP::InnerVolParameterization< dim >

Design parameterization w.r.t. inner volume nodes (i.e. volume nodes excluding those on the boundary).

Definition at line 10 of file inner_vol_parameterization.hpp.

Member Function Documentation

◆ compute_dXv_dXp()

template<int dim>
void PHiLiP::InnerVolParameterization< dim >::compute_dXv_dXp ( MatrixType dXv_dXp) const
overridevirtual

Computes the derivative of volume nodes w.r.t. inner volume nodes. Overrides the virtual function in base class.

dXv_dXp is a rectangular matrix of dimension n_vol_nodes x n_inner_nodes.

Implements PHiLiP::BaseParameterization< dim >.

Definition at line 94 of file inner_vol_parameterization.cpp.

◆ compute_inner_vol_index_to_vol_index()

template<int dim>
void PHiLiP::InnerVolParameterization< dim >::compute_inner_vol_index_to_vol_index ( )

Computes inner_vol_range IndexSet on each processor, along with n_inner_nodes and inner_vol_index_to_vol_index.

Called by the constructor of the class. These variables are expected to be constant throughtout the optimization for now (as no new nodes are being added).

Definition at line 17 of file inner_vol_parameterization.cpp.


The documentation for this class was generated from the following files: