]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Refactor template definitions into tensor_function.templates.h
authorMatthias Maier <tamiko@43-1.org>
Thu, 27 Aug 2015 03:46:18 +0000 (22:46 -0500)
committerMatthias Maier <tamiko@43-1.org>
Thu, 27 Aug 2015 03:47:02 +0000 (22:47 -0500)
include/deal.II/base/tensor_function.templates.h [new file with mode: 0644]
source/base/tensor_function.cc

diff --git a/include/deal.II/base/tensor_function.templates.h b/include/deal.II/base/tensor_function.templates.h
new file mode 100644 (file)
index 0000000..6e1981e
--- /dev/null
@@ -0,0 +1,164 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 1999 - 2015 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+#ifndef dealii__tensor_function_templates_h
+#define dealii__tensor_function_templates_h
+
+#include <deal.II/base/tensor_function.h>
+#include <deal.II/base/tensor.h>
+#include <deal.II/lac/vector.h>
+
+#include <vector>
+#include <cmath>
+
+DEAL_II_NAMESPACE_OPEN
+
+
+template <int rank, int dim, typename Number>
+TensorFunction<rank, dim, Number>::TensorFunction (const Number initial_time)
+  :
+  FunctionTime<Number> (initial_time)
+{}
+
+
+template <int rank, int dim, typename Number>
+TensorFunction<rank, dim, Number>::~TensorFunction ()
+{}
+
+
+template <int rank, int dim, typename Number>
+typename TensorFunction<rank, dim, Number>::value_type
+TensorFunction<rank, dim, Number>::value (const Point<dim> &) const
+{
+  Assert (false, ExcPureFunctionCalled());
+  return Tensor<rank,dim>();
+}
+
+
+template <int rank, int dim, typename Number>
+void
+TensorFunction<rank, dim, Number>::value_list (
+  const std::vector<Point<dim> > &points,
+  std::vector<value_type>        &values) const
+{
+  Assert (values.size() == points.size(),
+          ExcDimensionMismatch(values.size(), points.size()));
+
+  for (unsigned int i=0; i<points.size(); ++i)
+    values[i]  = this->value (points[i]);
+}
+
+
+template <int rank, int dim, typename Number>
+typename TensorFunction<rank, dim, Number>::gradient_type
+TensorFunction<rank, dim, Number>::gradient (const Point<dim> &) const
+{
+  Assert (false, ExcPureFunctionCalled());
+  return Tensor<rank+1,dim>();
+}
+
+
+template <int rank, int dim, typename Number>
+void
+TensorFunction<rank, dim, Number>::gradient_list (
+  const std::vector<Point<dim> >   &points,
+  std::vector<gradient_type> &gradients) const
+{
+  Assert (gradients.size() == points.size(),
+          ExcDimensionMismatch(gradients.size(), points.size()));
+
+  for (unsigned int i=0; i<points.size(); ++i)
+    gradients[i] = gradient(points[i]);
+}
+
+
+
+template <int rank, int dim, typename Number>
+ConstantTensorFunction<rank, dim, Number>::ConstantTensorFunction (
+  const Tensor<rank, dim, Number> &value,
+  const Number initial_time)
+  :
+  TensorFunction<rank, dim, Number> (initial_time),
+  _value(value)
+{}
+
+
+template <int rank, int dim, typename Number>
+ConstantTensorFunction<rank, dim, Number>::~ConstantTensorFunction ()
+{}
+
+
+template <int rank, int dim, typename Number>
+typename TensorFunction<rank, dim, Number>::value_type
+ConstantTensorFunction<rank, dim, Number>::value (
+  const Point<dim> &/*point*/) const
+{
+  return _value;
+}
+
+
+template <int rank, int dim, typename Number>
+void
+ConstantTensorFunction<rank, dim, Number>::value_list (
+  const std::vector<Point<dim> > &points,
+  std::vector<typename TensorFunction<rank, dim, Number>::value_type> &values) const
+{
+  (void)points;
+  Assert (values.size() == points.size(),
+          ExcDimensionMismatch(values.size(), points.size()));
+
+  for (unsigned int i=0; i<values.size(); ++i)
+    values[i]  = _value;
+}
+
+
+template <int rank, int dim, typename Number>
+typename TensorFunction<rank, dim, Number>::gradient_type
+ConstantTensorFunction<rank, dim, Number>::gradient (const Point<dim> &) const
+{
+  static const Tensor<rank+1,dim> zero;
+
+  return zero;
+}
+
+
+template <int rank, int dim, typename Number>
+void
+ConstantTensorFunction<rank, dim, Number>::gradient_list (
+  const std::vector<Point<dim> >   &points,
+  std::vector<typename TensorFunction<rank, dim, Number>::gradient_type> &gradients) const
+{
+  (void)points;
+  Assert (gradients.size() == points.size(),
+          ExcDimensionMismatch(gradients.size(), points.size()));
+
+  static const Tensor<rank+1,dim> zero;
+
+  for (unsigned int i=0; i<gradients.size(); ++i)
+    gradients[i] = zero;
+}
+
+
+
+template <int rank, int dim, typename Number>
+ZeroTensorFunction<rank, dim, Number>::ZeroTensorFunction (const Number initial_time)
+  :
+  ConstantTensorFunction<rank, dim, Number> (dealii::Tensor<rank, dim, Number>(), initial_time)
+{}
+
+
+DEAL_II_NAMESPACE_CLOSE
+
+#endif /* dealii__tensor_function_templates_h */
index 28d2618c665b63b4d4ddebc15398e3f596f02404..f976e6eabbac5aa92f38eb3f85027862a329859f 100644 (file)
 //
 // ---------------------------------------------------------------------
 
-#include <deal.II/base/tensor_function.h>
-#include <vector>
-#include <deal.II/base/tensor.h>
-#include <cmath>
-#include <deal.II/lac/vector.h>
+#include <deal.II/base/tensor_function.templates.h>
 
 DEAL_II_NAMESPACE_OPEN
 
-
-
-//////////////////////////////////////////////////////////////////////
-// TensorFunction
-//////////////////////////////////////////////////////////////////////
-
-template <int rank, int dim, typename Number>
-TensorFunction<rank, dim, Number>::TensorFunction (const Number initial_time)
-  :
-  FunctionTime<Number> (initial_time)
-{}
-
-
-
-template <int rank, int dim, typename Number>
-TensorFunction<rank, dim, Number>::~TensorFunction ()
-{}
-
-
-template <int rank, int dim, typename Number>
-typename TensorFunction<rank, dim, Number>::value_type
-TensorFunction<rank, dim, Number>::value (const Point<dim> &) const
-{
-  Assert (false, ExcPureFunctionCalled());
-  return Tensor<rank,dim>();
-}
-
-
-template <int rank, int dim, typename Number>
-void
-TensorFunction<rank, dim, Number>::value_list (const std::vector<Point<dim> > &points,
-                                               std::vector<value_type>        &values) const
-{
-  Assert (values.size() == points.size(),
-          ExcDimensionMismatch(values.size(), points.size()));
-
-  for (unsigned int i=0; i<points.size(); ++i)
-    values[i]  = this->value (points[i]);
-}
-
-
-template <int rank, int dim, typename Number>
-typename TensorFunction<rank, dim, Number>::gradient_type
-TensorFunction<rank, dim, Number>::gradient (const Point<dim> &) const
-{
-  Assert (false, ExcPureFunctionCalled());
-  return Tensor<rank+1,dim>();
-}
-
-
-template <int rank, int dim, typename Number>
-void
-TensorFunction<rank, dim, Number>::gradient_list (const std::vector<Point<dim> >   &points,
-                                                  std::vector<gradient_type> &gradients) const
-{
-  Assert (gradients.size() == points.size(),
-          ExcDimensionMismatch(gradients.size(), points.size()));
-
-  for (unsigned int i=0; i<points.size(); ++i)
-    gradients[i] = gradient(points[i]);
-}
-
-
-
-//////////////////////////////////////////////////////////////////////
-// ConstantTensorFunction
-//////////////////////////////////////////////////////////////////////
-
-
-template <int rank, int dim, typename Number>
-ConstantTensorFunction<rank, dim, Number>::ConstantTensorFunction (const Tensor<rank, dim, Number> &value,
-    const Number initial_time)
-  :
-  TensorFunction<rank, dim, Number> (initial_time),
-  _value(value)
-{}
-
-
-template <int rank, int dim, typename Number>
-ConstantTensorFunction<rank, dim, Number>::~ConstantTensorFunction ()
-{}
-
-
-template <int rank, int dim, typename Number>
-typename TensorFunction<rank, dim, Number>::value_type
-ConstantTensorFunction<rank, dim, Number>::value (const Point<dim> &/*point*/) const
-{
-  return _value;
-}
-
-
-template <int rank, int dim, typename Number>
-void
-ConstantTensorFunction<rank, dim, Number>::value_list (const std::vector<Point<dim> > &points,
-                                                       std::vector<typename TensorFunction<rank, dim, Number>::value_type> &values) const
-{
-  (void)points;
-  Assert (values.size() == points.size(),
-          ExcDimensionMismatch(values.size(), points.size()));
-
-  for (unsigned int i=0; i<values.size(); ++i)
-    values[i]  = _value;
-}
-
-
-template <int rank, int dim, typename Number>
-typename TensorFunction<rank, dim, Number>::gradient_type
-ConstantTensorFunction<rank, dim, Number>::gradient (const Point<dim> &) const
-{
-  static const Tensor<rank+1,dim> zero;
-
-  return zero;
-}
-
-
-template <int rank, int dim, typename Number>
-void
-ConstantTensorFunction<rank, dim, Number>::gradient_list (const std::vector<Point<dim> >   &points,
-                                                          std::vector<typename TensorFunction<rank, dim, Number>::gradient_type> &gradients) const
-{
-  (void)points;
-  Assert (gradients.size() == points.size(),
-          ExcDimensionMismatch(gradients.size(), points.size()));
-
-  static const Tensor<rank+1,dim> zero;
-
-  for (unsigned int i=0; i<gradients.size(); ++i)
-    gradients[i] = zero;
-}
-
-
-
-//////////////////////////////////////////////////////////////////////
-// ZeroTensorFunction
-//////////////////////////////////////////////////////////////////////
-
-
-template <int rank, int dim, typename Number>
-ZeroTensorFunction<rank, dim, Number>::ZeroTensorFunction (const Number initial_time)
-  :
-  ConstantTensorFunction<rank, dim, Number> (dealii::Tensor<rank, dim, Number>(), initial_time)
-{}
-
-
-
-//////////////////////////////////////////////////////////////////////
 // Explicit instantiations:
-//////////////////////////////////////////////////////////////////////
 
 template class TensorFunction<1,1>;
 template class TensorFunction<2,1>;

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.