From c9eb87d3c4a8d6c42674a67d7f9f7689ad2f2d3e Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Mon, 22 May 2000 08:28:51 +0000 Subject: [PATCH] Add a function to get at the DoFHandler of an accessor. Move the implementation functions to the correct .templates.h file. git-svn-id: https://svn.dealii.org/trunk@2915 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/dofs/dof_accessor.h | 26 +++++----- .../include/dofs/dof_accessor.templates.h | 51 +++++++++++++++++++ deal.II/deal.II/source/dofs/dof_accessor.cc | 19 +++++++ 3 files changed, 83 insertions(+), 13 deletions(-) diff --git a/deal.II/deal.II/include/dofs/dof_accessor.h b/deal.II/deal.II/include/dofs/dof_accessor.h index 574117bab0..ffbd26e55d 100644 --- a/deal.II/deal.II/include/dofs/dof_accessor.h +++ b/deal.II/deal.II/include/dofs/dof_accessor.h @@ -60,9 +60,7 @@ class DoFAccessor /** * Constructor */ - DoFAccessor () : dof_handler(0) { - Assert (false, ExcInvalidObject()); - }; + DoFAccessor (); /** * This should be the default constructor. @@ -74,24 +72,26 @@ class DoFAccessor * non-const, even if they preserve * constness. */ - DoFAccessor (const DoFHandler *dof_handler) : - dof_handler(const_cast*>(dof_handler)) {}; + DoFAccessor (const DoFHandler *dof_handler); /** * Reset the DoF handler pointer. */ - void set_dof_handler (DoFHandler *dh) { - Assert (dh != 0, ExcInvalidObject()); - dof_handler = dh; - }; + void set_dof_handler (DoFHandler *dh); + + /** + * Return a handle on the + * #DoFHandler# object which we + * are using. + */ + const DoFHandler & + get_dof_handler () const; /** * Copy operator. */ - DoFAccessor & operator = (const DoFAccessor &da) { - set_dof_handler (da.dof_handler); - return *this; - }; + DoFAccessor & + operator = (const DoFAccessor &da); /** * Exception for child classes diff --git a/deal.II/deal.II/include/dofs/dof_accessor.templates.h b/deal.II/deal.II/include/dofs/dof_accessor.templates.h index ece1ad920f..9731e92513 100644 --- a/deal.II/deal.II/include/dofs/dof_accessor.templates.h +++ b/deal.II/deal.II/include/dofs/dof_accessor.templates.h @@ -24,6 +24,57 @@ #include +/*------------------------- Functions: DoFAccessor ---------------------------*/ + + +template +DoFAccessor::DoFAccessor () : + dof_handler(0) +{ + Assert (false, ExcInvalidObject()); +}; + + + +template +inline +DoFAccessor::DoFAccessor (const DoFHandler *dof_handler) : + dof_handler(const_cast*>(dof_handler)) +{}; + + + +template +void +DoFAccessor::set_dof_handler (DoFHandler *dh) +{ + Assert (dh != 0, ExcInvalidObject()); + dof_handler = dh; +}; + + + +template +const DoFHandler & +DoFAccessor::get_dof_handler () const +{ + return *dof_handler; +}; + + + +template +inline +DoFAccessor & +DoFAccessor::operator = (const DoFAccessor &da) +{ + set_dof_handler (da.dof_handler); + return *this; +}; + + + + /*------------------------- Functions: DoFLineAccessor -----------------------*/ template diff --git a/deal.II/deal.II/source/dofs/dof_accessor.cc b/deal.II/deal.II/source/dofs/dof_accessor.cc index 717425fda9..191e4c861f 100644 --- a/deal.II/deal.II/source/dofs/dof_accessor.cc +++ b/deal.II/deal.II/source/dofs/dof_accessor.cc @@ -46,6 +46,7 @@ void DoFObjectAccessor<1, dim>::set_dof_index (const unsigned int i, }; + template void DoFObjectAccessor<1, dim>::set_vertex_dof_index (const unsigned int vertex, const unsigned int i, @@ -64,6 +65,7 @@ void DoFObjectAccessor<1, dim>::set_vertex_dof_index (const unsigned int vertex, }; + template void DoFObjectAccessor<1, dim>:: distribute_local_to_global (const Vector &local_source, @@ -88,6 +90,7 @@ distribute_local_to_global (const Vector &local_source, }; + template void DoFObjectAccessor<1, dim>:: distribute_local_to_global (const FullMatrix &local_source, @@ -117,6 +120,7 @@ distribute_local_to_global (const FullMatrix &local_source, }; + template template void @@ -147,6 +151,7 @@ DoFObjectAccessor<1,dim>::get_dof_values (const InputVector &values, }; + template template void @@ -196,6 +201,7 @@ void DoFObjectAccessor<2, dim>::set_dof_index (const unsigned int i, }; + template void DoFObjectAccessor<2, dim>::set_vertex_dof_index (const unsigned int vertex, @@ -215,6 +221,7 @@ DoFObjectAccessor<2, dim>::set_vertex_dof_index (const unsigned int vertex, }; + template void DoFObjectAccessor<2, dim>:: distribute_local_to_global (const Vector &local_source, @@ -240,6 +247,7 @@ distribute_local_to_global (const Vector &local_source, }; + template void DoFObjectAccessor<2, dim>:: distribute_local_to_global (const FullMatrix &local_source, @@ -270,6 +278,7 @@ distribute_local_to_global (const FullMatrix &local_source, }; + template template void @@ -304,6 +313,7 @@ DoFObjectAccessor<2,dim>::get_dof_values (const InputVector &values, }; + template template void @@ -357,6 +367,7 @@ void DoFObjectAccessor<3, dim>::set_dof_index (const unsigned int i, }; + template void DoFObjectAccessor<3, dim>::set_vertex_dof_index (const unsigned int vertex, const unsigned int i, @@ -375,6 +386,7 @@ void DoFObjectAccessor<3, dim>::set_vertex_dof_index (const unsigned int vertex, }; + template void DoFObjectAccessor<3, dim>:: distribute_local_to_global (const Vector &local_source, @@ -401,6 +413,7 @@ distribute_local_to_global (const Vector &local_source, }; + template void DoFObjectAccessor<3, dim>:: distribute_local_to_global (const FullMatrix &local_source, @@ -433,6 +446,7 @@ distribute_local_to_global (const FullMatrix &local_source, }; + template template void @@ -471,6 +485,7 @@ DoFObjectAccessor<3,dim>::get_dof_values (const InputVector &values, }; + template template void @@ -509,6 +524,7 @@ DoFObjectAccessor<3,dim>::set_dof_values (const Vector &local_values, }; + /*------------------------- Functions: DoFCellAccessor -----------------------*/ @@ -611,6 +627,7 @@ DoFCellAccessor::get_interpolated_dof_values (const InputVector &values, }; + template template void @@ -858,6 +875,8 @@ set_dof_values_by_interpolation(const Vector &, BlockVector<3,double> &) const; +template class DoFAccessor; + #if deal_II_dimension == 1 template class DoFObjectAccessor<1, 1>; #endif -- 2.39.5