00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __deal2__dof_faces_h
00013 #define __deal2__dof_faces_h
00014
00015
00016 #include <deal.II/base/config.h>
00017 #include <deal.II/base/exceptions.h>
00018 #include <deal.II/dofs/dof_objects.h>
00019 #include <vector>
00020
00021 DEAL_II_NAMESPACE_OPEN
00022
00023 template <int, int> class DoFHandler;
00024 template <int, int> class MGDoFHandler;
00025
00026 namespace internal
00027 {
00033 namespace DoFHandler
00034 {
00035
00061 template<int dim>
00062 class DoFFaces
00063 {
00069 private:
00070 DoFFaces();
00071 };
00072
00079 template<>
00080 class DoFFaces<1>
00081 {
00082 public:
00088 std::size_t memory_consumption () const;
00089
00094 template <class Archive>
00095 void serialize(Archive & ar,
00096 const unsigned int version);
00097 };
00098
00104 template<>
00105 class DoFFaces<2>
00106 {
00107 public:
00112 internal::DoFHandler::DoFObjects<1> lines;
00113
00119 std::size_t memory_consumption () const;
00120
00125 template <class Archive>
00126 void serialize(Archive & ar,
00127 const unsigned int version);
00128 };
00129
00135 template<>
00136 class DoFFaces<3>
00137 {
00138 public:
00143 internal::DoFHandler::DoFObjects<1> lines;
00144
00149 internal::DoFHandler::DoFObjects<2> quads;
00150
00156 std::size_t memory_consumption () const;
00157
00162 template <class Archive>
00163 void serialize(Archive & ar,
00164 const unsigned int version);
00165 };
00166
00167
00168
00169 template <class Archive>
00170 void DoFFaces<1>::serialize (Archive &,
00171 const unsigned int)
00172 {}
00173
00174
00175 template <class Archive>
00176 void DoFFaces<2>::serialize (Archive &ar,
00177 const unsigned int)
00178 {
00179 ar & lines;
00180 }
00181
00182
00183 template <class Archive>
00184 void DoFFaces<3>::serialize (Archive &ar,
00185 const unsigned int)
00186 {
00187 ar & lines & quads;
00188 }
00189
00190 }
00191 }
00192
00193 DEAL_II_NAMESPACE_CLOSE
00194
00195 #endif
00196