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
About
People
Contact/Get involved
Publications
Acknowledgements
Copyright
Picture show
Go
src
meshes
one_d_lagrangian_mesh.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-2025 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_ONE_D_LAGRANGIAN_MESH_HEADER
27
#define OOMPH_ONE_D_LAGRANGIAN_MESH_HEADER
28
29
// OOMPH-LIB headers
30
#include "
generic/mesh.h
"
31
#include "
generic/geom_objects.h
"
32
#include "
generic/fsi.h
"
33
34
// Include the header for the one dimensional mesh
35
#include "
one_d_mesh.h
"
36
37
namespace
oomph
38
{
39
//=======================================================================
40
/// 1D mesh parametrised in terms of a 1D Lagrangian coordinate.
41
/// The Eulerian positions of the nodes are determined by the GeomObject.
42
//=======================================================================
43
template
<
class
ELEMENT>
44
class
OneDLagrangianMesh
:
public
OneDMesh
<ELEMENT>,
public
SolidMesh
45
{
46
private
:
47
/// Undeformed Eulerian shape
48
GeomObject
*
Undef_eulerian_posn_pt
;
49
50
/// Set the default gradients of the elements
51
void
assign_default_element_gradients
();
52
53
/// Assign the undeformed Eulerian positions to the nodes
54
void
assign_undeformed_positions
();
55
56
public
:
57
/// Constructor: Pass number of elements, length,
58
/// pointer to GeomObject that defines the undeformed Eulerian position,
59
/// and the timestepper -- defaults to (Steady) default timestepper defined
60
/// in the Mesh base class
61
OneDLagrangianMesh
(
62
const
unsigned
&
n_element
,
63
const
double
&
length
,
64
GeomObject
*
undef_eulerian_posn_pt
,
65
TimeStepper
* time_stepper_pt = &
Mesh::Default_TimeStepper
);
66
67
/// Constructor: Pass number of elements, xmin, xmax
68
/// pointer to GeomObject that defines the undeformed Eulerian position,
69
/// and the timestepper -- defaults to (Steady) default timestepper defined
70
/// in the Mesh base class
71
OneDLagrangianMesh
(
72
const
unsigned
&
n_element
,
73
const
double
&
xmin
,
74
const
double
&
xmax
,
75
GeomObject
*
undef_eulerian_posn_pt
,
76
TimeStepper
* time_stepper_pt = &
Mesh::Default_TimeStepper
);
77
};
78
79
}
// namespace oomph
80
81
#include "
one_d_lagrangian_mesh.template.cc
"
82
#endif
oomph::GeomObject
A geometric object is an object that provides a parametrised description of its shape via the functio...
Definition
geom_objects.h:101
oomph::Mesh::Default_TimeStepper
static Steady< 0 > Default_TimeStepper
Default Steady Timestepper, to be used in default arguments to Mesh constructors.
Definition
mesh.h:75
oomph::OneDLagrangianMesh
1D mesh parametrised in terms of a 1D Lagrangian coordinate. The Eulerian positions of the nodes are ...
Definition
one_d_lagrangian_mesh.h:45
oomph::OneDLagrangianMesh::assign_undeformed_positions
void assign_undeformed_positions()
Assign the undeformed Eulerian positions to the nodes.
Definition
one_d_lagrangian_mesh.template.cc:139
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:109
oomph::OneDLagrangianMesh::Undef_eulerian_posn_pt
GeomObject * Undef_eulerian_posn_pt
Undeformed Eulerian shape.
Definition
one_d_lagrangian_mesh.h:48
oomph::OneDMesh
1D mesh consisting of N one-dimensional elements from the QElement family.
Definition
one_d_mesh.h:52
oomph::SolidMesh
General SolidMesh class.
Definition
mesh.h:2570
oomph::TAdvectionDiffusionReactionElement
TAdvectionDiffusionReactionElement<NREAGENT,DIM,NNODE_1D> elements are isoparametric triangular DIM-d...
Definition
Tadvection_diffusion_reaction_elements.h:66
oomph::TimeStepper
Base class for time-stepping schemes. Timestepper provides an approximation of the temporal derivativ...
Definition
timesteppers.h:231
fsi.h
geom_objects.h
mesh.h
oomph
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition
advection_diffusion_elements.cc:30
one_d_lagrangian_mesh.template.cc
one_d_mesh.h