galerkin_petrov_equal_order/space_time_unsteady_heat_block_preconditionable_elements.h
Go to the documentation of this file.
1 // LIC// ====================================================================
2 // LIC// This file forms part of oomph-lib, the object-oriented,
3 // LIC// multi-physics finite-element library, available
4 // LIC// at http://www.oomph-lib.org.
5 // LIC//
6 // LIC// Copyright (C) 2006-2023 Matthias Heil and Andrew Hazel
7 // LIC//
8 // LIC// This library is free software; you can redistribute it and/or
9 // LIC// modify it under the terms of the GNU Lesser General Public
10 // LIC// License as published by the Free Software Foundation; either
11 // LIC// version 2.1 of the License, or (at your option) any later version.
12 // LIC//
13 // LIC// This library is distributed in the hope that it will be useful,
14 // LIC// but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // LIC// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // LIC// Lesser General Public License for more details.
17 // LIC//
18 // LIC// You should have received a copy of the GNU Lesser General Public
19 // LIC// License along with this library; if not, write to the Free Software
20 // LIC// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 // LIC// 02110-1301 USA.
22 // LIC//
23 // LIC// The authors may be contacted at oomph-lib@maths.man.ac.uk.
24 // LIC//
25 // LIC//====================================================================
26 // Header file for SpaceTimeUnsteadyHeat elements
27 #ifndef OOMPH_SPACE_TIME_UNSTEADY_HEAT_BLOCK_PRECONDITIONABLE_ELEMENTS_HEADER
28 #define OOMPH_SPACE_TIME_UNSTEADY_HEAT_BLOCK_PRECONDITIONABLE_ELEMENTS_HEADER
29 
30 // Config header generated by autoconfig
31 #ifdef HAVE_CONFIG_H
32 #include <oomph-lib-config.h>
33 #endif
34 
35 // Space-time block preconditionable elements machinery
38 #include "../../space_time_block_preconditioner/general_purpose_space_time_block_preconditionable_elements.h"
39 
40 /// /////////////////////////////////////////////////////////////////////////
41 /// /////////////////////////////////////////////////////////////////////////
42 /// /////////////////////////////////////////////////////////////////////////
43 
44 namespace oomph
45 {
46  //======start_of_BlockPrecQUnsteadyHeatSpaceTimeElement====================
47  /// Block preconditionable version of UnsteadyHeatSpaceTimeElement
48  //=========================================================================
49  template<unsigned SPATIAL_DIM, unsigned NNODE_1D>
50  class BlockPrecQUnsteadyHeatSpaceTimeElement
51  : public virtual QUnsteadyHeatSpaceTimeElement<SPATIAL_DIM, NNODE_1D>,
52  public virtual BlockPreconditionableSpaceTimeElementBase
53  {
54  public:
55  /// Empty constructor
57  : QUnsteadyHeatSpaceTimeElement<SPATIAL_DIM, NNODE_1D>(),
59  {
60  }
61 
62  /// Empty destructor
64 
65  /// Overload the pure virtual base class implementation.
66  /// Create a list of pairs for all unknowns in this element,
67  /// so the first entry in each pair contains the global equation
68  /// number of the unknown, while the second one contains the number
69  /// of the "DOF type" that this unknown is associated with.
71  std::list<std::pair<unsigned long, unsigned>>& dof_lookup_list) const;
72  };
73 
74  //======start_of_BlockPrecQUnsteadyHeatSpaceTimeElement====================
75  /// Block preconditionable version of UnsteadyHeatSpaceTimeElement
76  //=========================================================================
77  template<unsigned SPATIAL_DIM, unsigned NNODE_1D>
79  : public virtual RefineableQUnsteadyHeatSpaceTimeElement<SPATIAL_DIM,
80  NNODE_1D>,
82  {
83  public:
84  /// Empty constructor
86  : RefineableQUnsteadyHeatSpaceTimeElement<SPATIAL_DIM, NNODE_1D>(),
88  {
89  }
90 
91  /// Empty destructor
93 
94  /// Overload the pure virtual base class implementation.
95  /// Create a list of pairs for all unknowns in this element,
96  /// so the first entry in each pair contains the global equation
97  /// number of the unknown, while the second one contains the number
98  /// of the "DOF type" that this unknown is associated with.
100  std::list<std::pair<unsigned long, unsigned>>& dof_lookup_list) const;
101  };
102 } // End of namespace oomph
103 #endif
void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const
Overload the pure virtual base class implementation. Create a list of pairs for all unknowns in this ...
void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const
Overload the pure virtual base class implementation. Create a list of pairs for all unknowns in this ...
Block preconditionable space-time element base class. NOTE: It has to derive from GeneralisedElement ...
//////////////////////////////////////////////////////////////////////// ////////////////////////////...
Refineable version of 2D QUnsteadyHeatSpaceTimeElement elements.
//////////////////////////////////////////////////////////////////// ////////////////////////////////...