Toggle navigation
Documentation
Big picture
The finite element method
The data structure
Not-so-quick guide
Optimisation
Order of action functions
Example codes and tutorials
List of example codes and tutorials
Meshing
Solvers
MPI parallel processing
Post-processing/visualisation
Other
Change log
Creating documentation
Coding conventions
Index
FAQ
Get it
Installation guide
Get code from subversion repository
Get code as tar file
Copyright
About
People
Contact/Get involved
Publications
Acknowledgements
Picture show
Go
src
meshes
one_d_lagrangian_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// Version 1.0; svn revision $LastChangedRevision$
7
//LIC//
8
//LIC// $LastChangedDate$
9
//LIC//
10
//LIC// Copyright (C) 2006-2016 Matthias Heil and Andrew Hazel
11
//LIC//
12
//LIC// This library is free software; you can redistribute it and/or
13
//LIC// modify it under the terms of the GNU Lesser General Public
14
//LIC// License as published by the Free Software Foundation; either
15
//LIC// version 2.1 of the License, or (at your option) any later version.
16
//LIC//
17
//LIC// This library is distributed in the hope that it will be useful,
18
//LIC// but WITHOUT ANY WARRANTY; without even the implied warranty of
19
//LIC// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20
//LIC// Lesser General Public License for more details.
21
//LIC//
22
//LIC// You should have received a copy of the GNU Lesser General Public
23
//LIC// License along with this library; if not, write to the Free Software
24
//LIC// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
25
//LIC// 02110-1301 USA.
26
//LIC//
27
//LIC// The authors may be contacted at oomph-lib@maths.man.ac.uk.
28
//LIC//
29
//LIC//====================================================================
30
#ifndef OOMPH_ONE_D_LAGRANGIAN_MESH_HEADER
31
#define OOMPH_ONE_D_LAGRANGIAN_MESH_HEADER
32
33
//OOMPH-LIB headers
34
#include "../generic/mesh.h"
35
#include "../generic/geom_objects.h"
36
#include "../generic/fsi.h"
37
38
//Include the header for the one dimensional mesh
39
#include "
one_d_mesh.template.h
"
40
41
42
namespace
oomph
43
{
44
45
//=======================================================================
46
/// 1D mesh parametrised in terms of a 1D Lagrangian coordinate.
47
/// The Eulerian positions of the nodes are determined by the GeomObject.
48
//=======================================================================
49
template
<
class
ELEMENT>
50
class
OneDLagrangianMesh
:
public
OneDMesh
<ELEMENT>,
public
SolidMesh
51
{
52
53
private
:
54
55
/// Undeformed Eulerian shape
56
GeomObject
*
Undef_eulerian_posn_pt
;
57
58
/// Set the default gradients of the elements
59
void
assign_default_element_gradients
();
60
61
/// Assign the undeformed Eulerian positions to the nodes
62
void
assign_undeformed_positions
();
63
64
public
:
65
66
/// \short Constructor: Pass number of elements, length,
67
/// pointer to GeomObject that defines the undeformed Eulerian position,
68
/// and the timestepper -- defaults to (Steady) default timestepper defined
69
/// in the Mesh base class
70
OneDLagrangianMesh
(
const
unsigned
&n_element,
71
const
double
&length,
72
GeomObject
* undef_eulerian_posn_pt,
73
TimeStepper
* time_stepper_pt=
74
&
Mesh::Default_TimeStepper
);
75
76
/// \short Constructor: Pass number of elements, xmin, xmax
77
/// pointer to GeomObject that defines the undeformed Eulerian position,
78
/// and the timestepper -- defaults to (Steady) default timestepper defined
79
/// in the Mesh base class
80
OneDLagrangianMesh
(
const
unsigned
&n_element,
const
double
&xmin,
81
const
double
&xmax,
82
GeomObject
* undef_eulerian_posn_pt,
83
TimeStepper
* time_stepper_pt=
84
&
Mesh::Default_TimeStepper
);
85
86
};
87
88
}
89
90
#endif
one_d_mesh.template.h
oomph::OneDLagrangianMesh
Definition:
one_d_lagrangian_mesh.template.h:50
oomph::Mesh::Default_TimeStepper
static Steady< 0 > Default_TimeStepper
Default Steady Timestepper, to be used in default arguments to Mesh constructors. ...
Definition:
mesh.h:85
oomph::OneDLagrangianMesh::assign_undeformed_positions
void assign_undeformed_positions()
Assign the undeformed Eulerian positions to the nodes.
Definition:
one_d_lagrangian_mesh.template.cc:143
oomph::OneDLagrangianMesh::OneDLagrangianMesh
OneDLagrangianMesh(const unsigned &n_element, const double &length, GeomObject *undef_eulerian_posn_pt, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass number of elements, length, pointer to GeomObject that defines the undeformed Euler...
Definition:
one_d_lagrangian_mesh.template.cc:55
oomph::GeomObject
Definition:
geom_objects.h:105
oomph
Definition:
advection_diffusion_elements.cc:33
oomph::OneDLagrangianMesh::Undef_eulerian_posn_pt
GeomObject * Undef_eulerian_posn_pt
Undeformed Eulerian shape.
Definition:
one_d_lagrangian_mesh.template.h:56
oomph::OneDMesh
Definition:
one_d_mesh.template.h:56
oomph::SolidMesh
General SolidMesh class.
Definition:
mesh.h:2213
oomph::OneDLagrangianMesh::assign_default_element_gradients
void assign_default_element_gradients()
Set the default gradients of the elements.
Definition:
one_d_lagrangian_mesh.template.cc:116
oomph::TimeStepper
Base class for time-stepping schemes. Timestepper provides an approximation of the temporal derivativ...
Definition:
timesteppers.h:219