single_layer_cubic_spine_mesh.template.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-2022 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 #ifndef OOMPH_SINGLE_LAYER_CUBIC_SPINE_MESH_HEADER
27 #define OOMPH_SINGLE_LAYER_CUBIC_SPINE_MESH_HEADER
28 
29 // oomph-lib includes
30 #include "../generic/spines.h"
32 
33 namespace oomph
34 {
35  //======================================================================
44  //======================================================================
45  template<class ELEMENT>
46  class SingleLayerCubicSpineMesh : public SimpleCubicMesh<ELEMENT>,
47  public SpineMesh
48  {
49  public:
55  const unsigned& nx,
56  const unsigned& ny,
57  const unsigned& nz,
58  const double& lx,
59  const double& ly,
60  const double& h,
61  TimeStepper* time_stepper_pt = &Mesh::Default_TimeStepper);
62 
66  virtual void spine_node_update(SpineNode* spine_node_pt)
67  {
68  // Get fraction along the spine
69  double W = spine_node_pt->fraction();
70  // Get spine height
71  double H = spine_node_pt->h();
72  // Set the value of z
73  spine_node_pt->x(2) = this->Zmin + W * H;
74  }
75 
76  protected:
79  virtual void build_single_layer_mesh(TimeStepper* time_stepper_pt);
80  };
81 
82 } // namespace oomph
83 
84 #endif
MatrixXf H
Definition: HessenbergDecomposition_matrixH.cpp:4
static Steady< 0 > Default_TimeStepper
The Steady Timestepper.
Definition: mesh.h:75
double & x(const unsigned &i)
Return the i-th nodal coordinate.
Definition: nodes.h:1060
Simple cubic 3D Brick mesh class.
Definition: simple_cubic_mesh.template.h:47
const unsigned & ny() const
Access function for number of elements in y directions.
Definition: simple_cubic_mesh.template.h:114
const unsigned & nx() const
Access function for number of elements in x directions.
Definition: simple_cubic_mesh.template.h:108
const unsigned & nz() const
Access function for number of elements in y directions.
Definition: simple_cubic_mesh.template.h:120
double Zmin
Minimum value of z coordinate.
Definition: simple_cubic_mesh.template.h:148
Definition: single_layer_cubic_spine_mesh.template.h:48
virtual void spine_node_update(SpineNode *spine_node_pt)
Definition: single_layer_cubic_spine_mesh.template.h:66
virtual void build_single_layer_mesh(TimeStepper *time_stepper_pt)
Definition: single_layer_cubic_spine_mesh.template.cc:66
SingleLayerCubicSpineMesh(const unsigned &nx, const unsigned &ny, const unsigned &nz, const double &lx, const double &ly, const double &h, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Definition: single_layer_cubic_spine_mesh.template.cc:41
Definition: spines.h:613
Definition: spines.h:328
double & h()
Access function to spine height.
Definition: spines.h:397
double & fraction()
Set reference to fraction along spine.
Definition: spines.h:378
Definition: timesteppers.h:231
const double ly
Definition: ConstraintElementsUnitTest.cpp:34
const double lx
Definition: ConstraintElementsUnitTest.cpp:33
@ W
Definition: quadtree.h:63
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10