1 #ifndef __DESIGN_PARAMETERIZATION_INNERVOL_H__ 2 #define __DESIGN_PARAMETERIZATION_INNERVOL_H__ 4 #include "base_parameterization.hpp" 12 using VectorType = dealii::LinearAlgebra::distributed::Vector<double>;
13 using MatrixType = dealii::TrilinosWrappers::SparseMatrix;
InnerVolParameterization(std::shared_ptr< HighOrderGrid< dim, double >> _high_order_grid)
Constructor.
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 ...
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_...
dealii::IndexSet inner_vol_range
Local indices of inner volume nodes.
Files for the baseline physics.
dealii::TrilinosWrappers::SparseMatrix MatrixType
Alias for dealii::TrilinosWrappers::SparseMatrix.
void initialize_design_variables(VectorType &design_var) override
Initializes design variables with inner volume nodes and set locally owned and ghost indices...
VectorType current_design_var
Current design variable. Stored to prevent recomputing if it is unchanged.
Abstract class for design parameterization. Objective function and the constraints take this class's ...
unsigned int n_inner_nodes
No. 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.
unsigned int get_number_of_design_variables() const override
Returns the number of design variables (i.e. no. of inner volume nodes).
dealii::LinearAlgebra::distributed::Vector< double > VectorType
Alias for dealii's parallel distributed vector.
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...
Design parameterization w.r.t. inner volume nodes (i.e. volume nodes excluding those on the boundary)...