1 #ifndef __FREE_FORM_DEFORMATION__ 2 #define __FREE_FORM_DEFORMATION__ 4 #include "high_order_grid.h" 15 const dealii::Point<dim> &_origin,
16 const std::array<dealii::Tensor<1,dim,double>,dim> _parallepiped_vectors,
17 const std::array<unsigned int,dim> &_ndim_control);
21 const dealii::Point<dim> &_origin,
22 const std::array<double,dim> &rectangle_lengths,
23 const std::array<unsigned int,dim> &_ndim_control);
27 template<
typename real>
29 (
const dealii::Point<dim,double> &initial_point,
30 const std::vector<dealii::Point<dim,real>> &
control_pts)
const;
34 dealii::Point<dim,double>
new_point_location (
const dealii::Point<dim,double> &initial_point)
const;
38 dealii::LinearAlgebra::distributed::Vector<double>
46 dealii::Point<dim,double>
dXdXp (
const dealii::Point<dim,double> &initial_point,
const unsigned int ctl_index,
const unsigned int ctl_axis)
const;
54 const std::vector< std::pair< unsigned int, unsigned int > > &ffd_design_variables_indices_dim,
55 dealii::TrilinosWrappers::SparseMatrix &dXvsdXp
62 std::vector<dealii::LinearAlgebra::distributed::Vector<double>>
64 const std::vector< std::pair< unsigned int, unsigned int > > &ffd_design_variables_indices_dim
71 std::vector<dealii::LinearAlgebra::distributed::Vector<double>>
73 const std::vector< std::pair< unsigned int, unsigned int > > &ffd_design_variables_indices_dim,
82 const std::vector< std::pair< unsigned int, unsigned int > > ffd_design_variables_indices_dim,
83 dealii::TrilinosWrappers::SparseMatrix &dXvdXp
90 const std::vector< std::pair< unsigned int, unsigned int > > ffd_design_variables_indices_dim,
91 dealii::TrilinosWrappers::SparseMatrix &dXvdXp_FD,
97 template<
typename real>
99 const dealii::Point<dim,double> &initial_point,
100 const std::vector<dealii::Point<dim,real>> &
control_pts)
const;
104 template<
typename real>
106 const std::vector<dealii::Point<dim,double>> &initial_point,
107 const std::vector<dealii::Point<dim,real>> &
control_pts)
const;
111 template<
typename real>
113 const dealii::Point<dim,double> &s_t_u_point,
114 const std::vector<dealii::Point<dim,real>> &
control_pts)
const;
122 std::array<unsigned int,dim>
global_to_grid (
const unsigned int global_ictl )
const;
127 unsigned int grid_to_global (
const std::array<unsigned int,dim> &ijk_index )
const;
130 void move_ctl_dx (
const unsigned i,
const dealii::Tensor<1,dim,double> );
133 void move_ctl_dx (
const std::array<unsigned int,dim> ijk,
const dealii::Tensor<1,dim,double> );
137 const std::vector< std::pair< unsigned int, unsigned int > > &ffd_design_variables_indices_dim,
138 dealii::LinearAlgebra::distributed::Vector<double> &vector_to_copy_into)
const;
141 const std::vector< std::pair< unsigned int, unsigned int > > &ffd_design_variables_indices_dim,
142 const dealii::LinearAlgebra::distributed::Vector<double> &vector_to_copy_from);
Files for the baseline physics.