LiquidMigrationFields.h
Go to the documentation of this file.
1 // This file is part of the MercuryDPM project (https://www.mercurydpm.org).
2 // Copyright (c), The MercuryDPM Developers Team. All rights reserved.
3 // License: BSD 3-Clause License; see the LICENSE file in the root directory.
4 
5 #ifndef LiquidMigrationFields_H
6 #define LiquidMigrationFields_H
7 
8 #include <Math/Matrix.h>
9 #include <Math/MatrixSymmetric.h>
11 
12 #include "BaseFields.h"
13 
14 class BaseParticle;
15 
16 class BaseInteraction;
17 
18 namespace CGFields
19 {
20 
21 
33 {
34 public:
35 
40 
45 
51 
52  static void writeNames(std::ostream& os, unsigned countVariables);
53 
57  void write(std::ostream& os) const;
58 
62  void output(std::ostream& os) const;
63 
67  void setZero();
68 
73 
78 
83 
88 
93 
99 
105  void addParticleStatistics(Mdouble phi, const LiquidMigrationFields& currentInteraction);
106 
107  void addParticleDifferentialStatistics(Vec3D& dphi, const LiquidMigrationFields& currentInteraction);
108 
114  void addInteractionStatistics(Mdouble psi, const LiquidMigrationFields& currentInteraction);
115 
121  void addContactPointStatistics(Mdouble phi, const LiquidMigrationFields& currentInteraction);
122 
124 
126 
127  void setFields(const BaseParticle& p);
128 
129  void setCylindricalFields(const BaseParticle& p);
130 
135  static bool doInteractionStatistics();
136 
138  {
139  return liquidBridgeVolume_;
140  }
141 
143  {
144  return liquidFilmVolume_;
145  }
146 
148  {
149  return true;
150  }
151 
156  static bool isDifferentialField()
157  {
158  return false;
159  }
160 
161 private:
162 
170 
178 };
179 
180 }
181 #endif
IntegralType
Specifies the two points between which a line integral is computed.
Definition: IntegralType.h:14
float * p
Definition: Tutorial_Map_using.cpp:9
Stores information about interactions between two interactable objects; often particles but could be ...
Definition: BaseInteraction.h:39
Definition: BaseParticle.h:33
A Base class for the fields.
Definition: BaseFields.h:22
Contains the computed field values, like density, momentum and stress.
Definition: LiquidMigrationFields.h:33
LiquidMigrationFields & operator/=(Mdouble a)
Divides the field values on the LHS by the RHS of the equation.
Definition: LiquidMigrationFields.cc:110
Mdouble getLiquidBridgeVolume() const
Definition: LiquidMigrationFields.h:137
void addContactPointStatistics(Mdouble phi, const LiquidMigrationFields &currentInteraction)
This function should be called from within a loop over all Interactions to compute all the fields tha...
Definition: LiquidMigrationFields.cc:145
static bool doInteractionStatistics()
Returns true if the class contains fields that are defined as a sum over all Interactions (e....
Definition: LiquidMigrationFields.cc:150
LiquidMigrationFields(const LiquidMigrationFields &P)=default
Default copy constructor, copies the values of all fields.
void setFields(const BaseInteraction &c, IntegralType type)
Definition: LiquidMigrationFields.cc:155
static bool isDifferentialField()
Definition: LiquidMigrationFields.h:156
LiquidMigrationFields()
Default constructor, sets all field values to zero.
Definition: LiquidMigrationFields.cc:13
void setCylindricalFields(const BaseInteraction &c, IntegralType type)
Definition: LiquidMigrationFields.cc:190
LiquidMigrationFields & operator=(const LiquidMigrationFields &P)
Copies all field values.
void addParticleStatistics(Mdouble phi, const LiquidMigrationFields &currentInteraction)
This function should be called from within a loop over all particles to compute all the fields that a...
Definition: LiquidMigrationFields.cc:121
Mdouble getLiquidFilmVolume() const
Definition: LiquidMigrationFields.h:142
void addInteractionStatistics(Mdouble psi, const LiquidMigrationFields &currentInteraction)
This function should be called from within a loop over all Interactions to compute all the fields tha...
Definition: LiquidMigrationFields.cc:135
Mdouble liquidFilmVolume_
Definition: LiquidMigrationFields.h:177
void write(std::ostream &os) const
Writes class content into an output stream, typically a stat file.
Definition: LiquidMigrationFields.cc:33
void addParticleDifferentialStatistics(Vec3D &dphi, const LiquidMigrationFields &currentInteraction)
Definition: LiquidMigrationFields.cc:126
LiquidMigrationFields operator*(Mdouble a) const
Multiplies the field values on the left of the '*' by the scalar value on the right of the '*' and re...
Definition: LiquidMigrationFields.cc:98
LiquidMigrationFields & operator+=(const LiquidMigrationFields &P)
Adds the field values on the RHS to the LHS of the equation.
Definition: LiquidMigrationFields.cc:76
LiquidMigrationFields getSquared() const
Returns the square of all field values (to calculate standard deviation).
Definition: LiquidMigrationFields.cc:57
void output(std::ostream &os) const
Writes human-readable class content into an output stream, typically a stat file.
Definition: LiquidMigrationFields.cc:42
void setZero()
Sets all fields to zero.
Definition: LiquidMigrationFields.cc:48
static void writeNames(std::ostream &os, unsigned countVariables)
Definition: LiquidMigrationFields.cc:24
static bool evaluateFixedParticles()
Definition: LiquidMigrationFields.h:147
~LiquidMigrationFields()=default
Destructor, it simply destructs the LiquidMigrationFields and all the objects it contains.
LiquidMigrationFields & operator-=(const LiquidMigrationFields &P)
Subtracts the field values on the RHS from the LHS of the equation.
Definition: LiquidMigrationFields.cc:87
Mdouble liquidBridgeVolume_
Definition: LiquidMigrationFields.h:169
Definition: Kernel/Math/Vector.h:30
const Scalar * a
Definition: level2_cplx_impl.h:32
Definition: BaseFields.h:14
double P
Uniform pressure.
Definition: TwenteMeshGluing.cpp:77
int c
Definition: calibrate.py:100
type
Definition: compute_granudrum_aor.py:141