]> https://gitweb.dealii.org/ - dealii.git/commitdiff
hp::FECollection new constructors added 2065/head
authorangelrca <angel.rcarballo@udc.es>
Fri, 15 Jan 2016 09:04:32 +0000 (10:04 +0100)
committerangelrca <angel.rcarballo@udc.es>
Fri, 15 Jan 2016 18:48:43 +0000 (19:48 +0100)
include/deal.II/hp/fe_collection.h
source/hp/fe_collection.cc

index 0684aead5327bf05e918f69cac09e59798425340..86a9b400a06183e425f5d6c56f75e1256fa751aa 100644 (file)
@@ -67,6 +67,50 @@ namespace hp
      */
     explicit FECollection (const FiniteElement<dim,spacedim> &fe);
 
+    /**
+     * Constructor. This constructor creates a FECollection from two
+     * finite elements.
+     */
+    FECollection (const FiniteElement<dim,spacedim> &fe1,
+                  const FiniteElement<dim,spacedim> &fe2);
+
+    /**
+     * Constructor. This constructor creates a FECollection from three
+     * finite elements.
+     */
+    FECollection (const FiniteElement<dim,spacedim> &fe1,
+                  const FiniteElement<dim,spacedim> &fe2,
+                  const FiniteElement<dim,spacedim> &fe3);
+
+    /**
+     * Constructor. This constructor creates a FECollection from four
+     * finite elements.
+     */
+    FECollection (const FiniteElement<dim,spacedim> &fe1,
+                  const FiniteElement<dim,spacedim> &fe2,
+                  const FiniteElement<dim,spacedim> &fe3,
+                  const FiniteElement<dim,spacedim> &fe4);
+
+    /**
+     * Constructor. This constructor creates a FECollection from five
+     * finite elements.
+     */
+    FECollection (const FiniteElement<dim,spacedim> &fe1,
+                  const FiniteElement<dim,spacedim> &fe2,
+                  const FiniteElement<dim,spacedim> &fe3,
+                  const FiniteElement<dim,spacedim> &fe4,
+                  const FiniteElement<dim,spacedim> &fe5);
+
+    /**
+     * Constructor. Same as above but for any number of elements. Pointers
+     * to the elements are passed in a vector to this constructor.
+     * As above, the finite element objects pointed to by the argument are
+     * not actually used other than to create copies internally. Consequently,
+     * you can delete these pointers immediately again after calling this
+     * constructor.
+     */
+    FECollection (const std::vector<const FiniteElement<dim,spacedim>*> &fes);
+
     /**
      * Copy constructor.
      */
index 0e52842212791ec9951aeb9b85c8b8dadef3ce2d..54a3cc3be81d15c75a024d4fc71294b2b00f835e 100644 (file)
@@ -100,6 +100,71 @@ namespace hp
 
 
 
+  template <int dim, int spacedim>
+  FECollection<dim,spacedim>::FECollection (const FiniteElement<dim,spacedim> &fe1,
+                                            const FiniteElement<dim,spacedim> &fe2)
+  {
+    push_back(fe1);
+    push_back(fe2);
+  }
+
+
+
+  template <int dim, int spacedim>
+  FECollection<dim,spacedim>::FECollection (const FiniteElement<dim,spacedim> &fe1,
+                                            const FiniteElement<dim,spacedim> &fe2,
+                                            const FiniteElement<dim,spacedim> &fe3)
+  {
+    push_back(fe1);
+    push_back(fe2);
+    push_back(fe3);
+  }
+
+
+
+  template <int dim, int spacedim>
+  FECollection<dim,spacedim>::FECollection (const FiniteElement<dim,spacedim> &fe1,
+                                            const FiniteElement<dim,spacedim> &fe2,
+                                            const FiniteElement<dim,spacedim> &fe3,
+                                            const FiniteElement<dim,spacedim> &fe4)
+  {
+    push_back(fe1);
+    push_back(fe2);
+    push_back(fe3);
+    push_back(fe4);
+  }
+
+
+
+  template <int dim, int spacedim>
+  FECollection<dim,spacedim>::FECollection (const FiniteElement<dim,spacedim> &fe1,
+                                            const FiniteElement<dim,spacedim> &fe2,
+                                            const FiniteElement<dim,spacedim> &fe3,
+                                            const FiniteElement<dim,spacedim> &fe4,
+                                            const FiniteElement<dim,spacedim> &fe5)
+  {
+    push_back(fe1);
+    push_back(fe2);
+    push_back(fe3);
+    push_back(fe4);
+    push_back(fe5);
+  }
+
+
+
+  template <int dim, int spacedim>
+  FECollection<dim,spacedim>::
+  FECollection (const std::vector<const FiniteElement<dim,spacedim>*>  &fes)
+  {
+    Assert (fes.size() > 0,
+            ExcMessage ("Need to pass at least one finite element."));
+
+    for (unsigned int i = 0; i < fes.size(); ++i)
+      push_back(*fes[i]);
+  }
+
+
+
   template <int dim, int spacedim>
   FECollection<dim,spacedim>::
   FECollection (const FECollection<dim,spacedim> &fe_collection)

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.