]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Move contents of TODO file into .h and .cc files.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 29 Mar 2001 15:46:35 +0000 (15:46 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 29 Mar 2001 15:46:35 +0000 (15:46 +0000)
git-svn-id: https://svn.dealii.org/trunk@4336 0785d39b-7218-0410-832d-ea1e28bc413d

12 files changed:
deal.II/deal.II/Todo [deleted file]
deal.II/deal.II/include/fe/fe_base.h
deal.II/deal.II/include/grid/grid_out.h
deal.II/deal.II/include/grid/tria.h
deal.II/deal.II/include/grid/tria_iterator.h
deal.II/deal.II/include/numerics/data_out.h
deal.II/deal.II/source/dofs/dof_handler.cc
deal.II/deal.II/source/dofs/dof_renumbering.cc
deal.II/deal.II/source/grid/grid_out.cc
deal.II/deal.II/source/grid/tria.all_dimensions.cc
deal.II/deal.II/source/grid/tria.cc
deal.II/deal.II/source/numerics/vectors.cc

diff --git a/deal.II/deal.II/Todo b/deal.II/deal.II/Todo
deleted file mode 100644 (file)
index 1b1c043..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-=================================================================
-====== Things to be done for the deal.II library ================
-=================================================================
-
-Reorganize GridOut class. Either templatize GridOut or remove template
-  from EpsFlags
-
-
-Remove the comment signs in the monitor_* functions in tria.cc
-  as early as possible. These were inserted, since at home the
-  program did some strange things in the reserve_memory
-  functions (allocated more memory than told), such that the
-  memory checks failed.
-
-
-Write monitors to control whether enough memory was allocated for
-  the vectors (i.e. after a process, whether size()==capacity()).
-  (for DoF)
-
-
-Check usage of vector<>s: functions should assume that the objects have
-  the right size already.
-
-
-Remove FiniteElementData<>::operator == and let it be generated
-  implicitely.
-
-
-Look at the fill_fe_values functions for possible optimizations
-  since this is one of the most often called functions.
-
-
-In VectorTools::project_boundary_values, no condensation of sparsity
-  structures, matrices and right hand sides or distribution of
-  solution vectors is performed. This is ok for dim<3 because then
-  there are no constrained nodes on the boundary, but is not
-  acceptable for higher dimensions. Fix this.
-
-
-Implement the random distortion in Triangulation for hanging nodes
-  also. Hanging nodes need to be reset to the correct mean value
-  at the end, which is simple for 2D but difficult for 3D. Maybe take
-  a look at how we get to the original location of the point in the
-  execute_refinement function and copy the relevant lines.
-
-
-Review DoFCellAccessor<dim>::get_interpolated_dof_values: it may be
-  necessary to write not the non-zero values, but those for which
-  the corresponding row of the transfer (restriction) matrix
-  has nonzero entries. This also catches those zeroes which should
-  really be written but are not because the nodal value was zero.
-
-
-Add tests in Triangulation<3>::create_triangulation for faces (quads)
-  which are entered twice: once and once again in a rotated or
-  mirrored direction.
-
-
-Better estimates for DoFHandler<3>::max_couplings_between_dofs
-
-
-Check optimized code with -Winline and act accordingly. Unfortunately,
-  most warnings are from the STL.
-
-
-Unify lots of code of the two Cuthill-McKee dof renumbering functions
-  in numerics/dof_renumbering.cc. This should be rather
-  straightforward, since all the unified code needs to get is a
-  sparsity structure, possibly compressed and return a vector
-  of numbers. Simple task.
-
-
-Add support for MGTransferPrebuilt and MGSmoother if a user wants
-  to solve exactly on another than the coarsest grid. In this case,
-  some matrices and other arrays need not be computed.
-
-
-Fix MGTransferPrebuilt::build_matrices, think about diagonals in
-  square sparse matrices.
-
-
-In GridOut::write_ucd, a vector of vertices is built along with
-  another vector stating which of these are used. These are actually
-  the same arrays as exist already in the triangulation, but I did not
-  want to write just another access function. However, someone should
-  take a look whether re-building these arrays is a large wast of
-  computing time and memory, or whether it is justifiable.
-
-
-Fix a potential problem with viewing angles in 3d Eps GridOut (see
-  comment)
-
-
-Move the TriaNumberCache into the Triangulation class once the
-  compiler supports this (gcc2.95 does not allow this at present)
-
-
-Why is dof_renumbering.h in include/numerics, but dof_renumbering.cc
-  in source/dofs??
-
-
-DataOut determines whether something is a DoF or cell vector by the
-  size of the vector. This will fail if someone is using DG0 elements,
-  since there the number of elements of both types of vectors is the
-  same, but the ordering will usually differ. Errors cannot be plotted
-  anyway, since they are float vectors.
index 38249308b54bfdef144ca829452a53b96cfc5e79..056da7fa017cc86a1d1f5f954491406aa25576b9 100644 (file)
@@ -182,6 +182,7 @@ class FiniteElementData
                                      * me (WB) why we have to declare and implement
                                      * this one explicitely.
                                      */
+//TODO:[WB] remove operator and let the compiler generate it as soon as it is willing to do so    
     bool operator == (const FiniteElementData<dim> &) const;
 
                                     /**
index f42be24657dc6de96bc5b7b0f7275cd4c9a9ea43..eb16309f639edec22c74c682f6c2d1122c1363c2 100644 (file)
@@ -14,6 +14,9 @@
 #define __deal2__grid_out_h
 
 
+//TODO:[WB]Reorganize GridOut class. Either templatize GridOut or remove template from EpsFlags
+
+
 #include <base/exceptions.h>
 #include <string>
 
index 7d3b39841d6a75f57f372c657d29d2d7adcb9148..59ed117f7e66e25571b808f3764348c75b87ed74 100644 (file)
@@ -324,6 +324,11 @@ class TriaDimensionInfo<3>
 
 /*------------------------------------------------------------------------*/
 
+//TODO:[WB] Move the TriaNumberCache into the Triangulation class
+//  once the compiler supports this (gcc2.95 does not allow this at present)
+
+
+
 /**
  * Cache class used to store the number of used and active elements
  * (lines or quads etc) within the levels of a triangulation. This
index 4df089a508834bbbca938d6ccfdab2ed4103c2c0..3ed59972eb2f9d2f00bf74230c4a2a471d8eaefb 100644 (file)
@@ -13,6 +13,7 @@
 /*----------------------------   tria-iterator.h     ---------------------------*/
 
 
+//TODO:[WB] Change <iostream> to <ostream> when that becomes available
 #include <iterator>
 #include <iostream>
 #include <base/exceptions.h>
index ab5cca8107a737ecf17554eb3dd8e151308befc6..e6dadb5fdc2e451153e4b709ce4244ff332dd685 100644 (file)
 #define __deal2__data_out_h
 
 
+//TODO:[?] DataOut determines whether something is a DoF or cell vector by the size of the vector.
+//    This will fail if someone is using DG0 elements,
+//    since there the number of elements of both types of vectors is the
+//    same, but the ordering will usually differ. Errors cannot be plotted
+//    anyway, since they are float vectors.
+
+
+
 #include <base/smartpointer.h>
 #include <base/multithread_info.h>
 #include <base/data_out_base.h>
index 635b550ac4a9e30763066b144432019a3a396e29..31c0d1a34ead292d65b89fa016feb845fd71c78f 100644 (file)
@@ -1646,15 +1646,18 @@ void DoFHandler<3>::renumber_dofs (const std::vector<unsigned int> &new_numbers)
 #if deal_II_dimension == 1
 
 template <>
-unsigned int DoFHandler<1>::max_couplings_between_dofs () const {
+unsigned int DoFHandler<1>::max_couplings_between_dofs () const
+{
   Assert (selected_fe != 0, ExcNoFESelected());
   return std::min(3*selected_fe->dofs_per_vertex +
                  2*selected_fe->dofs_per_line, n_dofs());
 };
 
 
+
 template <>
-unsigned int DoFHandler<1>::max_couplings_between_boundary_dofs () const {
+unsigned int DoFHandler<1>::max_couplings_between_boundary_dofs () const
+{
   Assert (selected_fe != 0, ExcNoFESelected());
   Assert (false, ExcInternalError());
   return 0;
@@ -1666,7 +1669,8 @@ unsigned int DoFHandler<1>::max_couplings_between_boundary_dofs () const {
 #if deal_II_dimension == 2
 
 template <>
-unsigned int DoFHandler<2>::max_couplings_between_dofs () const {
+unsigned int DoFHandler<2>::max_couplings_between_dofs () const
+{
   Assert (selected_fe != 0, ExcNoFESelected());
 
                                   // get these numbers by drawing pictures
@@ -1726,8 +1730,10 @@ unsigned int DoFHandler<2>::max_couplings_between_dofs () const {
 };
 
 
+
 template <>
-unsigned int DoFHandler<2>::max_couplings_between_boundary_dofs () const {
+unsigned int DoFHandler<2>::max_couplings_between_boundary_dofs () const
+{
   Assert (selected_fe != 0, ExcNoFESelected());
   return 3*selected_fe->dofs_per_vertex + 2*selected_fe->dofs_per_line;
 };
@@ -1738,7 +1744,9 @@ unsigned int DoFHandler<2>::max_couplings_between_boundary_dofs () const {
 #if deal_II_dimension == 3
 
 template <>
-unsigned int DoFHandler<3>::max_couplings_between_dofs () const {
+unsigned int DoFHandler<3>::max_couplings_between_dofs () const
+{
+//TODO:[?] Invent significantly better estimates than the ones in this function  
   Assert (selected_fe != 0, ExcNoFESelected());
 
                                   // doing the same thing here is a rather
index 2b04721b09d800b14d222161f63b9ee28bfdefc7..f6d155ede6647356ebcc156994a87057307f8873 100644 (file)
 //----------------------------  dof_renumbering.cc  ---------------------------
 
 
+//TODO:[WB] Unify lots of code of the two Cuthill-McKee dof renumbering functions
+//    This should be rather
+//    straightforward, since all the unified code needs to get is a
+//    sparsity structure, possibly compressed and return a vector
+//    of numbers. Simple task.
+
 #include <lac/sparsity_pattern.h>
 #include <dofs/dof_accessor.h>
 #include <grid/tria_iterator.h>
index f77011673e86a981eaf996bf17841be56c1e958a..023d020e37b773bb229eb5b343fde96ff7865180 100644 (file)
@@ -31,6 +31,13 @@ template <int dim>
 void GridOut::write_ucd (const Triangulation<dim> &tria,
                         std::ostream             &out) 
 {
+//TODO:[WB] In GridOut::write_ucd, a vector of vertices is built along with
+//    another vector stating which of these are used. These are actually
+//    the same arrays as exist already in the triangulation, but I did not
+//    want to write just another access function. However, someone should
+//    take a look whether re-building these arrays is a large waste of
+//    computing time and memory, or whether it is justifiable.
+  
   AssertThrow (out, ExcIO());
 
   typename Triangulation<dim>::active_cell_iterator        cell=tria.begin_active();
@@ -666,6 +673,7 @@ void GridOut::write_eps (const Triangulation<dim> &tria,
                                         // we chose here the viewpoint as in
                                         // gnuplot as default.
                                         //
+//TODO:[WB] Fix a potential problem with viewing angles in 3d Eps GridOut
                                         // note: the following might be wrong
                                         // if one of the base vectors below
                                         // is in direction of the viewer, but
index f46d0393bb704b18ed44c215523125934e39889f..bebe934cef1f17ee4227f10539a1b9608a0f8c57 100644 (file)
 //----------------------------  tria.all_dimensions.cc  ---------------------------
 
 
+//TODO:[WB]Remove the comment signs in the monitor_* functions
+//    as early as possible. These were inserted, since at home the
+//    program did some strange things in the reserve_memory
+//    functions (allocated more memory than told), such that the
+//    memory checks failed.
+
+
 #include <base/memory_consumption.h>
 #include <grid/tria.h>
 #include <grid/tria_levels.h>
index 1140817c4b3362d58b66eff9504793607c470245..d368203b642bb5619b41f93e8e87e766c36c6e2f 100644 (file)
@@ -821,6 +821,10 @@ void Triangulation<3>::create_triangulation (const std::vector<Point<3> >    &v,
                                             const std::vector<CellData<3> > &c,
                                             const SubCellData               &subcelldata)
 {
+//TODO:[?]Add tests in Triangulation<3>::create_triangulation for faces (quads)
+//    which are entered twice: once and once again in a rotated or
+//    mirrored direction.
+  
   const unsigned int dim=3;
 
   Assert (vertices.size() == 0, ExcTriangulationNotEmpty());
@@ -1614,11 +1618,18 @@ template <int dim>
 void Triangulation<dim>::distort_random (const double factor,
                                         const bool   keep_boundary)
 {
-                                  // this function is mostly equivalent to
-                                  // that for the general dimensional case
-                                  // the only difference being the correction
-                                  // for split faces which is not necessary
-                                  // in 1D
+//TODO:[?]Implement the random distortion in Triangulation for hanging nodes as well
+//    Hanging nodes need to be reset to the correct mean value
+//    at the end, which is simple for 2D but difficult for 3D. Maybe take
+//    a look at how we get to the original location of the point in the
+//    execute_refinement function and copy the relevant lines.
+  
+                                  // this function is mostly
+                                  // equivalent to that for the
+                                  // general dimensional case the
+                                  // only difference being the
+                                  // correction for split faces which
+                                  // is not necessary in 1D
                                   //
                                   // if you change something here, don't
                                   // forget to do so there as well
index 77f125b6a7574bf4aec113631d9f7371d04232e3..c9066fa9b134d2af3f521317a00eef4658ec646d 100644 (file)
@@ -299,7 +299,8 @@ void VectorTools::project (const DoFHandler<1>    &,
                           Vector<double>         &,
                           const bool              ,
                           const Quadrature<0>    &,
-                          const bool              ) {
+                          const bool              )
+{
                                   // this function should easily be implemented
                                   // using the template below. However some
                                   // changes have to be made since faces don't
@@ -735,6 +736,12 @@ VectorTools::project_boundary_values (const DoFHandler<dim>    &dof,
                                      const Quadrature<dim-1>  &q,
                                      std::map<unsigned int,double> &boundary_values)
 {
+//TODO:[?] In VectorTools::project_boundary_values, no condensation of sparsity
+//    structures, matrices and right hand sides or distribution of
+//    solution vectors is performed. This is ok for dim<3 because then
+//    there are no constrained nodes on the boundary, but is not
+//    acceptable for higher dimensions. Fix this.
+
   Assert (dof.get_fe().n_components() == boundary_functions.begin()->second->n_components,
          ExcComponentMismatch());
   

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.