24 #ifndef POINTCONSTRAINTSMAKER_H_
25 #define POINTCONSTRAINTSMAKER_H_
41 template<
template<
int,
int>
class DH,
int dopedim,
int dealdim = dopedim>
46 const std::vector<std::vector<bool> > &c_comps)
49 if(c_points_.size() != c_comps_.size())
50 throw DOpEException(
"Number of Entries not matching!",
"PointConstraints::PointConstraints");
55 dealii::ConstraintMatrix& constraint_matrix)
const;
60 dealii::ConstraintMatrix& )
const {}
64 const std::vector<Point<dealdim> > & c_points_;
65 const std::vector<std::vector<bool> > & c_comps_;
68 template<
template<
int,
int>
class DH,
int dopedim,
int dealdim>
71 dealii::ConstraintMatrix& constraint_matrix)
const
73 std::vector<dealii::Point<dealdim> > support_points(dof_handler.n_dofs());
75 for(
unsigned int i = 0; i < c_points_.size(); i++)
77 std::vector<bool> selected_dofs(dof_handler.n_dofs());
78 #if DEAL_II_MAJOR_VERSION >= 8
80 dealii::ComponentMask components(c_comps_[i]);
81 DoFTools::extract_dofs(dof_handler,components,selected_dofs);
83 #if DEAL_II_MAJOR_VERSION >= 7
84 #if DEAL_II_MINOR_VERSION >= 3
86 dealii::ComponentMask components(c_comps_[i]);
87 DoFTools::extract_dofs(dof_handler,components,selected_dofs);
89 DoFTools::extract_dofs(dof_handler,c_comps_[i],selected_dofs);
92 DoFTools::extract_dofs(dof_handler,c_comps_[i],selected_dofs);
97 for(
unsigned int p = 0; p < support_points.size(); p++)
99 if(c_points_[i].distance(support_points[p]) < 1.e-12)
102 if(selected_dofs[p] ==
true)
104 constraint_matrix.add_line(p);
112 throw DOpEException(
"Points not found!",
"PointConstraints::MakeStateDoFConstraints");
Definition: pointconstraintsmaker.h:42
Definition: userdefineddofconstraints.h:55
virtual void MakeControlDoFConstraints(const DOpEWrapper::DoFHandler< dopedim, DH > &, dealii::ConstraintMatrix &) const
Definition: pointconstraintsmaker.h:58
void MapDoFsToSupportPoints(const DOpEWrapper::Mapping< dealdim, dealii::DoFHandler > &mapping, const DOpEWrapper::DoFHandler< dealdim, dealii::DoFHandler > &dh, VECTOR &support_points)
Definition: sth_internals.h:47
Definition: dopeexception.h:35
virtual void MakeStateDoFConstraints(const DOpEWrapper::DoFHandler< dealdim, DH > &dof_handler, dealii::ConstraintMatrix &constraint_matrix) const
Definition: pointconstraintsmaker.h:69
PointConstraints(const std::vector< dealii::Point< dealdim > > &c_points, const std::vector< std::vector< bool > > &c_comps)
Definition: pointconstraintsmaker.h:45