summaryrefslogtreecommitdiff
path: root/src/particles
diff options
context:
space:
mode:
Diffstat (limited to 'src/particles')
-rw-r--r--src/particles/MakeHeader32
-rw-r--r--src/particles/boundaries/MakeHeader29
-rw-r--r--src/particles/boundaries/boundaries.h36
-rw-r--r--src/particles/boundaries/boundaries.hh33
-rw-r--r--src/particles/boundaries/boundary3D.cpp34
-rw-r--r--src/particles/boundaries/boundary3D.h57
-rw-r--r--src/particles/boundaries/boundary3D.hh48
-rw-r--r--src/particles/boundaries/boundarySimpleReflection3D.cpp35
-rw-r--r--src/particles/boundaries/boundarySimpleReflection3D.h56
-rw-r--r--src/particles/boundaries/boundarySimpleReflection3D.hh206
-rw-r--r--src/particles/boundaries/materialBoundary3D.cpp34
-rw-r--r--src/particles/boundaries/materialBoundary3D.h84
-rw-r--r--src/particles/boundaries/materialBoundary3D.hh83
-rw-r--r--src/particles/boundaries/module.mk27
-rw-r--r--src/particles/boundaries/periodicBoundary3D.h136
-rwxr-xr-xsrc/particles/boundaries/wireBoundaryForMagP3D.cpp33
-rwxr-xr-xsrc/particles/boundaries/wireBoundaryForMagP3D.h80
-rwxr-xr-xsrc/particles/boundaries/wireBoundaryForMagP3D.hh88
-rw-r--r--src/particles/contactDetection/contactDetection.h66
-rw-r--r--src/particles/contactDetection/nanoflann.hpp1634
-rw-r--r--src/particles/contactDetection/nanoflann_adaptor.hpp127
-rw-r--r--src/particles/contactDetection/pLattice.h205
-rw-r--r--src/particles/contactDetection/sortAlgorithms.h31
-rw-r--r--src/particles/forces/MakeHeader36
-rw-r--r--src/particles/forces/buoyancyForce3D.cpp35
-rw-r--r--src/particles/forces/buoyancyForce3D.h58
-rw-r--r--src/particles/forces/buoyancyForce3D.hh67
-rw-r--r--src/particles/forces/force3D.cpp34
-rw-r--r--src/particles/forces/force3D.h58
-rw-r--r--src/particles/forces/force3D.hh50
-rw-r--r--src/particles/forces/forceFromExtField3D.cpp35
-rwxr-xr-xsrc/particles/forces/forceFromExtField3D.h57
-rwxr-xr-xsrc/particles/forces/forceFromExtField3D.hh66
-rw-r--r--src/particles/forces/forces.h42
-rw-r--r--src/particles/forces/forces.hh40
-rw-r--r--src/particles/forces/hertzMindlinDeresiewicz3D.cpp36
-rwxr-xr-xsrc/particles/forces/hertzMindlinDeresiewicz3D.h75
-rwxr-xr-xsrc/particles/forces/hertzMindlinDeresiewicz3D.hh202
-rw-r--r--src/particles/forces/hertzMindlinDeresiewiczForCombWithCollisionModel3D.cpp36
-rwxr-xr-xsrc/particles/forces/hertzMindlinDeresiewiczForCombWithCollisionModel3D.h76
-rwxr-xr-xsrc/particles/forces/hertzMindlinDeresiewiczForCombWithCollisionModel3D.hh235
-rw-r--r--src/particles/forces/interpMagForceForMagP3D.cpp40
-rw-r--r--src/particles/forces/interpMagForceForMagP3D.h59
-rw-r--r--src/particles/forces/interpMagForceForMagP3D.hh158
-rw-r--r--src/particles/forces/linearContactForce3D.cpp36
-rwxr-xr-xsrc/particles/forces/linearContactForce3D.h76
-rwxr-xr-xsrc/particles/forces/linearContactForce3D.hh208
-rw-r--r--src/particles/forces/linearDampingForceForMagDipoleMoment3D.cpp37
-rw-r--r--src/particles/forces/linearDampingForceForMagDipoleMoment3D.h55
-rw-r--r--src/particles/forces/linearDampingForceForMagDipoleMoment3D.hh63
-rw-r--r--src/particles/forces/magneticForceForMagP3D.cpp35
-rwxr-xr-xsrc/particles/forces/magneticForceForMagP3D.h64
-rwxr-xr-xsrc/particles/forces/magneticForceForMagP3D.hh85
-rw-r--r--src/particles/forces/magneticForceFromHField3D.cpp35
-rwxr-xr-xsrc/particles/forces/magneticForceFromHField3D.h57
-rwxr-xr-xsrc/particles/forces/magneticForceFromHField3D.hh119
-rw-r--r--src/particles/forces/module.mk27
-rw-r--r--src/particles/forces/stokesDragForce3D.cpp36
-rw-r--r--src/particles/forces/stokesDragForce3D.h71
-rw-r--r--src/particles/forces/stokesDragForce3D.hh127
-rw-r--r--src/particles/forces/stokesDragForceForHomVelField3D.cpp38
-rw-r--r--src/particles/forces/stokesDragForceForHomVelField3D.h54
-rw-r--r--src/particles/forces/stokesDragForceForHomVelField3D.hh57
-rw-r--r--src/particles/forces/transferExternalForce3D.cpp33
-rw-r--r--src/particles/forces/transferExternalForce3D.h48
-rw-r--r--src/particles/forces/transferExternalForce3D.hh54
-rw-r--r--src/particles/forces/weightForce3D.cpp34
-rw-r--r--src/particles/forces/weightForce3D.h50
-rw-r--r--src/particles/forces/weightForce3D.hh50
-rw-r--r--src/particles/hlbm/hlbmDynamics2D.h110
-rw-r--r--src/particles/hlbm/hlbmDynamics2D.hh261
-rw-r--r--src/particles/hlbm/hlbmDynamics3D.h108
-rw-r--r--src/particles/hlbm/hlbmDynamics3D.hh317
-rw-r--r--src/particles/module.mk27
-rw-r--r--src/particles/particle3D.cpp32
-rw-r--r--src/particles/particle3D.h407
-rwxr-xr-xsrc/particles/particle3D.hh537
-rw-r--r--src/particles/particleSystem3D.cpp95
-rwxr-xr-xsrc/particles/particleSystem3D.h456
-rwxr-xr-xsrc/particles/particleSystem3D.hh1917
-rw-r--r--src/particles/particles3D.h32
-rw-r--r--src/particles/particles3D.hh32
-rw-r--r--src/particles/superParticleSysVTUout.cpp36
-rw-r--r--src/particles/superParticleSysVTUout.h138
-rw-r--r--src/particles/superParticleSysVTUout.hh1328
-rw-r--r--src/particles/superParticleSystem3D.cpp85
-rw-r--r--src/particles/superParticleSystem3D.h413
-rw-r--r--src/particles/superParticleSystem3D.hh2257
-rw-r--r--src/particles/twoWayCouplings/backCouplingModels.h124
-rw-r--r--src/particles/twoWayCouplings/backCouplingModels.hh230
-rw-r--r--src/particles/twoWayCouplings/dragModels3D.h113
-rw-r--r--src/particles/twoWayCouplings/dragModels3D.hh150
-rw-r--r--src/particles/twoWayCouplings/forwardCouplingModels3D.h148
-rw-r--r--src/particles/twoWayCouplings/forwardCouplingModels3D.hh280
-rw-r--r--src/particles/twoWayCouplings/twoWayCouplings3D.h32
-rw-r--r--src/particles/twoWayCouplings/twoWayCouplings3D.hh32
-rw-r--r--src/particles/twoWayCouplings/twoWayHelperFunctionals.h232
-rw-r--r--src/particles/twoWayCouplings/twoWayHelperFunctionals.hh431
98 files changed, 16598 insertions, 0 deletions
diff --git a/src/particles/MakeHeader b/src/particles/MakeHeader
new file mode 100644
index 0000000..0ea7b65
--- /dev/null
+++ b/src/particles/MakeHeader
@@ -0,0 +1,32 @@
+# This file is part of the OpenLB library
+#
+# Copyright (C) 2007 Mathias Krause
+# E-mail contact: info@openlb.net
+# The most recent release of OpenLB can be downloaded at
+# <http://www.openlb.net/>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+
+generic :=
+
+precompiled := particle3D \
+ particleSystem3D \
+ superParticleSystem3D \
+ superParticleSysVTUout
+ # particleSysVTUout \
+
+# TODO: add cpp files for "precompiled" as soon as they are created
diff --git a/src/particles/boundaries/MakeHeader b/src/particles/boundaries/MakeHeader
new file mode 100644
index 0000000..7918ac8
--- /dev/null
+++ b/src/particles/boundaries/MakeHeader
@@ -0,0 +1,29 @@
+# This file is part of the OpenLB library
+#
+# Copyright (C) 2007 Mathias Krause
+# E-mail contact: info@openlb.net
+# The most recent release of OpenLB can be downloaded at
+# <http://www.openlb.net/>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this program; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+
+generic :=
+
+precompiled := boundary3D \
+ materialBoundary3D \
+ wireBoundaryForMagP3D \
+ boundarySimpleReflection3D
diff --git a/src/particles/boundaries/boundaries.h b/src/particles/boundaries/boundaries.h
new file mode 100644
index 0000000..9543bbb
--- /dev/null
+++ b/src/particles/boundaries/boundaries.h
@@ -0,0 +1,36 @@
+/* This file is part of the OpenLB library
+ *
+ * Copyright (C) 2014 Thomas Henn, Mathias J. Krause
+ * E-mail contact: info@openlb.net
+ * The most recent release of OpenLB can be downloaded at
+ * <http://www.openlb.net/>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+/** \file
+ * Groups all the include files for 3D particles boundaries in
+ * the particles boundaries directory.
+ */
+
+#include "boundary3D.h"
+#include "materialBoundary3D.h"
+#include "periodicBoundary3D.h"
+#include "wireBoundaryForMagP3D.h"
+#include "boundarySimpleReflection3D.h"
+
+
+
diff --git a/src/particles/boundaries/boundaries.hh b/src/particles/boundaries/boundaries.hh
new file mode 100644
index 0000000..5560689
--- /dev/null
+++ b/src/particles/boundaries/boundaries.hh
@@ -0,0 +1,33 @@
+/* This file is part of the OpenLB library
+ *
+ * Copyright (C) 2016 Thomas Henn, Mathias J. Krause, Marie-Luise Maier
+ * E-mail contact: info@openlb.net
+ * The most recent release of OpenLB can be downloaded at
+ * <http://www.openlb.net/>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+/** \file
+ * Groups all the include files for 3D particles boundaries in
+ * the particles boundaries directory.
+ */
+
+#include "boundary3D.hh"
+#include "materialBoundary3D.hh"
+#include "wireBoundaryForMagP3D.hh"
+#include "boundarySimpleReflection3D.hh"
+
diff --git a/src/particles/boundaries/boundary3D.cpp b/src/particles/boundaries/boundary3D.cpp
new file mode 100644
index 0000000..50efb54
--- /dev/null
+++ b/src/particles/boundaries/boundary3D.cpp
@@ -0,0 +1,34 @@
+/* This file is part of the OpenLB library
+ *
+ * Copyright (C) 2016 Mathias J. Krause, Marie-Luise Maier
+ * E-mail contact: info@openlb.net
+ * The most recent release of OpenLB can be downloaded at
+ * <http://www.openlb.net/>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#include"particles/particle3D.h"
+#include"particles/particle3D.hh"
+#include"boundary3D.h"
+#include"boundary3D.hh"
+
+namespace olb {
+
+template class Boundary3D<double,Particle3D>;
+template class Boundary3D<double,MagneticParticle3D>;
+
+} // namespace olb
diff --git a/src/particles/boundaries/boundary3D.h b/src/particles/boundaries/boundary3D.h
new file mode 100644
index 0000000..bef74b0
--- /dev/null
+++ b/src/particles/boundaries/boundary3D.h
@@ -0,0 +1,57 @@
+/* This file is part of the OpenLB library
+ *
+ * Copyright (C) 2014 Thomas Henn, Mathias J. Krause
+ * E-mail contact: info@openlb.net
+ * The most recent release of OpenLB can be downloaded at
+ * <http://www.openlb.net/>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+
+#ifndef BOUNDARY3D_H
+#define BOUNDARY3D_H
+
+#include "particles/particleSystem3D.h"
+#include "particles/particleSystem3D.h"
+#include "io/ostreamManager.h"
+
+namespace olb {
+
+template<typename T, template<typename U> class PARTICLETYPE>
+class ParticleSystem3D;
+
+
+/**
+ * Prototype for all particle boundaries
+ */
+
+template<typename T, template<typename U> class PARTICLETYPE>
+class Boundary3D {
+public:
+ Boundary3D();
+ Boundary3D(Boundary3D<T, PARTICLETYPE>&);
+ Boundary3D(const Boundary3D<T, PARTICLETYPE>&);
+
+ virtual ~Boundary3D() {};
+ virtual void applyBoundary(typename std::deque<PARTICLETYPE<T> >::iterator& p, ParticleSystem3D<T, PARTICLETYPE>& psSys)=0;
+
+protected:
+ mutable OstreamManager clout;
+};
+
+}
+#endif /* BOUNDARY3D_H */
diff --git a/src/particles/boundaries/boundary3D.hh b/src/particles/boundaries/boundary3D.hh
new file mode 100644
index 0000000..6e4951d
--- /dev/null
+++ b/src/particles/boundaries/boundary3D.hh
@@