MeltableNormalSpecies.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 MERCURY_MELTABLENORMALSPECIES_H
6 #define MERCURY_MELTABLENORMALSPECIES_H
7 
8 #include "Species/BaseSpecies.h"
9 #include "Math/ExtendedMath.h"
11 #include "DPMBase.h"
12 
14 public:
16 
17  MeltableNormalSpecies() = default;
18 
20 
22 
23  void read(std::istream &is);
24 
25  void write(std::ostream &os) const;
26 
27  std::string getBaseName() const;
28 
30 
31  void setElasticModulus(Mdouble elasticModulus);
32 
33  Mdouble getElasticModulus() const;
34 
35  void setPoissonRatio(Mdouble poissonRatio);
36 
37  Mdouble getPoissonRatio() const;
38 
39  void setDissipation(Mdouble dissipation);
40 
41  Mdouble getDissipation() const;
42 
43  void setLatentHeat(Mdouble latentHeat);
44 
45  Mdouble getLatentHeat() const;
46 
47  void setThermalConductivityCoefficient(Mdouble thermalConductivityCoefficient);
48 
50 
51  void setThermalConvectionCoefficient(Mdouble thermalConvectionCoefficient);
52 
54 
55  void setMaterialEmissivity(Mdouble materialEmissivity);
56 
58 
59  void setSolidHeatCapacity(Mdouble heatCapacity);
60 
62 
63  void setMeltingTemperature(Mdouble meltingTemperature);
64 
66 
67  void setAmbientTemperature(Mdouble ambientTemperature);
68 
70 
71  void setHeatInput(std::function<double(const BaseParticle*)>& heatInputFunction) {
72  heatInputFunction_ = heatInputFunction;
73  }
74 
75  void setHeatInput(Mdouble heatInput);
76 
77  Mdouble getHeatInput(const BaseParticle* p) const;
78 
79  //Mdouble computeMaxTimeStep(Mdouble minRadius, Mdouble minDensity, Mdouble minElasticModulus);
80 
81  void setMaterialAbsorptivity(Mdouble materialAbsorptivity);
82 
84 
85  void setDeltaT(Mdouble deltaT);
86 
87  Mdouble getDeltaT() const;
88 
89  void setLiquidHeatCapacity(Mdouble liquidHeatCapacity);
90 
92 
93  void setThermalExpansionCoefficient(Mdouble thermalExpansionCoefficient);
94 
96 
97  void setActivationEnergy(Mdouble activationEnergy);
98 
100 
101  void setSurfaceTension(Mdouble surfaceTension);
102 
103  Mdouble getSurfaceTension() const;
104 
105  void setRefViscosity(Mdouble refViscosity);
106 
107  Mdouble getRefViscosity() const;
108 
109  void setMinRelativeSolidRadius(Mdouble minRelativeSolidRadius) {
110  minRelativeSolidRadius_ = minRelativeSolidRadius;
111  }
112 
115  }
116 
117  void setWallTemperature(Mdouble wallTemperature) {
118  wallTemperature_ = wallTemperature;
119  }
120 
122  return wallTemperature_;
123  }
124 
125  Mdouble getEffectiveHeatCapacity(double temperature) const;
126 
128 
129  Mdouble getRelativeSolidRadius(double temperature) const;
130 
133  }
134 
135  void analyseTimeScales(double radius, double density, double temperature) const;
136 
137 private:
148  Mdouble materialEmissivity_ = 0.0; //rename
152  std::function<double(const BaseParticle*)> heatInputFunction_ = nullptr;
159 };
160 
161 #endif
float * p
Definition: Tutorial_Map_using.cpp:9
Definition: BaseNormalForce.h:11
Definition: BaseParticle.h:33
Definition: MeltableInteraction.h:17
Definition: MeltableNormalSpecies.h:13
Mdouble getHeatInput(const BaseParticle *p) const
Definition: MeltableNormalSpecies.cc:189
void setRefViscosity(Mdouble refViscosity)
Definition: MeltableNormalSpecies.cc:273
Mdouble getActivationEnergy() const
Definition: MeltableNormalSpecies.cc:256
Mdouble getWallTemperature() const
Definition: MeltableNormalSpecies.h:121
Mdouble getPoissonRatio() const
Definition: MeltableNormalSpecies.cc:83
Mdouble refViscosity_
Definition: MeltableNormalSpecies.h:157
Mdouble meltingTemperature_
Definition: MeltableNormalSpecies.h:145
MeltableNormalSpecies()=default
Mdouble getRelativeSolidRadius(double temperature) const
Definition: MeltableNormalSpecies.cc:306
Mdouble elasticModulus_
Definition: MeltableNormalSpecies.h:138
Mdouble liquidHeatCapacity_
Definition: MeltableNormalSpecies.h:143
Mdouble wallTemperature_
Definition: MeltableNormalSpecies.h:150
Mdouble poissonRatio_
Definition: MeltableNormalSpecies.h:139
void setSolidHeatCapacity(Mdouble heatCapacity)
Definition: MeltableNormalSpecies.cc:148
Mdouble getElasticModulus() const
Definition: MeltableNormalSpecies.cc:71
Mdouble getEffectiveLatentHeat() const
Definition: MeltableNormalSpecies.cc:302
Mdouble getThermalConvectionCoefficient() const
Definition: MeltableNormalSpecies.cc:131
void setMaterialAbsorptivity(Mdouble materialAbsorptivity)
Definition: MeltableNormalSpecies.cc:203
Mdouble ambientTemperature_
Definition: MeltableNormalSpecies.h:149
Mdouble solidHeatCapacity_
Definition: MeltableNormalSpecies.h:142
void setAmbientTemperature(Mdouble ambientTemperature)
Definition: MeltableNormalSpecies.cc:160
Mdouble thermalConductivityCoefficient_
Definition: MeltableNormalSpecies.h:146
void setThermalExpansionCoefficient(Mdouble thermalExpansionCoefficient)
Definition: MeltableNormalSpecies.cc:239
Mdouble getSolidHeatCapacity() const
Definition: MeltableNormalSpecies.cc:155
void setLiquidHeatCapacity(Mdouble liquidHeatCapacity)
Definition: MeltableNormalSpecies.cc:227
~MeltableNormalSpecies()=default
Mdouble activationEnergy_
Definition: MeltableNormalSpecies.h:155
Mdouble getRefViscosity() const
Definition: MeltableNormalSpecies.cc:280
void setSurfaceTension(Mdouble surfaceTension)
Definition: MeltableNormalSpecies.cc:261
MeltableInteraction InteractionType
Definition: MeltableNormalSpecies.h:15
Mdouble getThermalConductivityCoefficient() const
Definition: MeltableNormalSpecies.cc:119
Mdouble getDissipation() const
Definition: MeltableNormalSpecies.cc:95
Mdouble latentHeat_
Definition: MeltableNormalSpecies.h:144
void setHeatInput(std::function< double(const BaseParticle *)> &heatInputFunction)
Definition: MeltableNormalSpecies.h:71
Mdouble getSurfaceTension() const
Definition: MeltableNormalSpecies.cc:268
Mdouble surfaceTension_
Definition: MeltableNormalSpecies.h:156
Mdouble minRelativeSolidRadius_
Definition: MeltableNormalSpecies.h:158
void setPoissonRatio(Mdouble poissonRatio)
Definition: MeltableNormalSpecies.cc:76
void setElasticModulus(Mdouble elasticModulus)
Definition: MeltableNormalSpecies.cc:64
Mdouble getMaterialEmissivity() const
Definition: MeltableNormalSpecies.cc:143
Mdouble deltaT_
Definition: MeltableNormalSpecies.h:141
Mdouble getMaterialAbsorptivity() const
Definition: MeltableNormalSpecies.cc:210
void setMaterialEmissivity(Mdouble materialEmissivity)
Definition: MeltableNormalSpecies.cc:136
std::function< double(const BaseParticle *)> heatInputFunction_
Definition: MeltableNormalSpecies.h:152
void setDeltaT(Mdouble deltaT)
Definition: MeltableNormalSpecies.cc:215
Mdouble materialAbsorptivity_
Definition: MeltableNormalSpecies.h:153
Mdouble getDeltaT() const
Definition: MeltableNormalSpecies.cc:222
Mdouble getMeltingTemperature() const
Definition: MeltableNormalSpecies.cc:179
void read(std::istream &is)
Definition: MeltableNormalSpecies.cc:31
Mdouble materialEmissivity_
Definition: MeltableNormalSpecies.h:148
Mdouble heatInput_
Definition: MeltableNormalSpecies.h:151
Mdouble getMinRelativeSolidRadius() const
Definition: MeltableNormalSpecies.h:113
void setDissipation(Mdouble dissipation)
Definition: MeltableNormalSpecies.cc:88
Mdouble getAmbientTemperature() const
Definition: MeltableNormalSpecies.cc:167
void setMeltingTemperature(Mdouble meltingTemperature)
Definition: MeltableNormalSpecies.cc:172
void setLatentHeat(Mdouble latentHeat)
Definition: MeltableNormalSpecies.cc:100
void setMinRelativeSolidRadius(Mdouble minRelativeSolidRadius)
Definition: MeltableNormalSpecies.h:109
Mdouble getThermalExpansionCoefficient() const
Definition: MeltableNormalSpecies.cc:244
void analyseTimeScales(double radius, double density, double temperature) const
Definition: MeltableNormalSpecies.cc:310
MeltableNormalSpecies(const MeltableNormalSpecies &p)=default
Mdouble getLatentHeat() const
Definition: MeltableNormalSpecies.cc:107
Mdouble dissipation_
Definition: MeltableNormalSpecies.h:140
void setActivationEnergy(Mdouble activationEnergy)
Definition: MeltableNormalSpecies.cc:249
Mdouble getEffectiveElasticModulus() const
Definition: MeltableNormalSpecies.h:131
void setWallTemperature(Mdouble wallTemperature)
Definition: MeltableNormalSpecies.h:117
void mix(MeltableNormalSpecies *S, MeltableNormalSpecies *T)
Definition: MeltableNormalSpecies.cc:285
Mdouble getEffectiveHeatCapacity(double temperature) const
Definition: MeltableNormalSpecies.cc:292
std::string getBaseName() const
Definition: MeltableNormalSpecies.cc:59
Mdouble thermalExpansionCoefficient_
Definition: MeltableNormalSpecies.h:154
void setThermalConvectionCoefficient(Mdouble thermalConvectionCoefficient)
Definition: MeltableNormalSpecies.cc:124
Mdouble thermalConvectionCoefficient_
Definition: MeltableNormalSpecies.h:147
void write(std::ostream &os) const
Definition: MeltableNormalSpecies.cc:8
Mdouble getLiquidHeatCapacity() const
Definition: MeltableNormalSpecies.cc:234
void setThermalConductivityCoefficient(Mdouble thermalConductivityCoefficient)
Definition: MeltableNormalSpecies.cc:112
density
Definition: UniformPSDSelfTest.py:19
radius
Definition: UniformPSDSelfTest.py:15
const Mdouble inf
Definition: GeneralDefine.h:23
T square(const T val)
squares a number
Definition: ExtendedMath.h:86
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
@ S
Definition: quadtree.h:62