Molecular Dynamics  v0.4
Project for the Practical hosted by the Scientific Computing Chair
ParticleGenerator.h
Go to the documentation of this file.
1 //
2 // Created by daniel on 04.05.24.
3 //
4 
5 #pragma once
9 
14 private:
19  static int id;
20 
41  static void generateDiscQuadrant(ParticleContainer &particles, const std::array<double, 3> &corner,
42  const std::array<double, 3> &initVelocity, double h, double mass, int N, double r,
43  int dimensions,
44  double brownianMotionAverageVelocity, std::array<int, 4> transformMatrix,
45  double epsilon = 5, double sigma = 1, bool fixed = false);
46 
47 public:
65  static void generateCuboid(ParticleContainer &particles, const std::array<double, 3> &position, unsigned N1,
66  unsigned N2, unsigned N3,
67  double h, double mass, const std::array<double, 3> &initVelocity, int dimensions,
68  double brownianMotionAverageVelocity, double epsilon = 5, double sigma = 1, bool fixed = false);
69 
85  static void generateDisc(ParticleContainer &particles, const std::array<double, 3> &center,
86  const std::array<double, 3> &initVelocity, int N, double h, double mass, int dimensions,
87  double brownianMotionAverageVelocity, double epsilon = 5, double sigma = 1, bool fixed = false);
88 
104  static void generateSphere(ParticleContainer &particles, const std::array<double, 3> &center,
105  const std::array<double, 3> &initVelocity, int N, double h, double mass, int dimensions,
106  double brownianMotionAverageVelocity, double epsilon, double sigma, bool fixed = false);
107 
122  static void generateMembrane(ParticleContainer &particles, const std::array<double, 3> &position, unsigned N1,
123  unsigned N2, double h, double mass, const std::array<double, 3> &initVelocity, bool isMarked(unsigned, unsigned),
124  double epsilon = 5, double sigma = 1);
125 };
Class corresponding to the N1 schema type.
Definition: ConfigurationFile.h:10343
Class corresponding to the N2 schema type.
Definition: ConfigurationFile.h:10437
Class corresponding to the N3 schema type.
Definition: ConfigurationFile.h:11829
Definition: ParticleContainer.h:11
Class for generating various particle structures. Currently only cuboids are supported.
Definition: ParticleGenerator.h:13
static void generateCuboid(ParticleContainer &particles, const std::array< double, 3 > &position, unsigned N1, unsigned N2, unsigned N3, double h, double mass, const std::array< double, 3 > &initVelocity, int dimensions, double brownianMotionAverageVelocity, double epsilon=5, double sigma=1, bool fixed=false)
Generate a cuboid structure.
Definition: ParticleGenerator.cpp:39
static void generateMembrane(ParticleContainer &particles, const std::array< double, 3 > &position, unsigned N1, unsigned N2, double h, double mass, const std::array< double, 3 > &initVelocity, bool isMarked(unsigned, unsigned), double epsilon=5, double sigma=1)
Generate a 2D membrane.
Definition: ParticleGenerator.cpp:160
static void generateSphere(ParticleContainer &particles, const std::array< double, 3 > &center, const std::array< double, 3 > &initVelocity, int N, double h, double mass, int dimensions, double brownianMotionAverageVelocity, double epsilon, double sigma, bool fixed=false)
Generate a 3D sphere structure.
Definition: ParticleGenerator.cpp:136
static void generateDiscQuadrant(ParticleContainer &particles, const std::array< double, 3 > &corner, const std::array< double, 3 > &initVelocity, double h, double mass, int N, double r, int dimensions, double brownianMotionAverageVelocity, std::array< int, 4 > transformMatrix, double epsilon=5, double sigma=1, bool fixed=false)
Helper method to generate one of four quadrants of an 2-dimensional disc structure.
Definition: ParticleGenerator.cpp:13
static int id
Definition: ParticleGenerator.h:19
static void generateDisc(ParticleContainer &particles, const std::array< double, 3 > &center, const std::array< double, 3 > &initVelocity, int N, double h, double mass, int dimensions, double brownianMotionAverageVelocity, double epsilon=5, double sigma=1, bool fixed=false)
Generate a 2D disc structure.
Definition: ParticleGenerator.cpp:84