TransFlow  0.1.0
A transient pipeline flow simulation library
ambientfluid.hpp
1 #pragma once
2 
3 #include "heattransfer/material.hpp"
4 
10 class AmbientFluid : public Material
11 {
12 public:
21  constexpr AmbientFluid(
22  const double velocity,
23  const double viscosity,
24  const double conductivity,
25  const double density,
26  const double heatCapacity):
30  {}
31 
38  constexpr AmbientFluid(
39  const double velocity,
40  const double viscosity,
41  const Material& material):
42  Material(material),
45  {}
46 
47  // read-only
48  double velocity() const { return m_velocity; }
49  double viscosity() const { return m_viscosity; }
50 
51  // setters
52 // double& viscosity() { return m_viscosity; }
53 // double& velocity() { return m_velocity; }
54 // double& conductivity() { return m_conductivity; }
55 // double& density() { return m_density; }
56 // double& heatCapacity() { return m_heatCapacity; }
57 
58  // initialized below
59  static const AmbientFluid seawater;
60  static const AmbientFluid air;
61 
62 private:
63  double m_velocity;
64  double m_viscosity;
65 };
66 
67 constexpr inline AmbientFluid AmbientFluid::seawater = AmbientFluid(0.1, 1.05/1000.0, Material::seawater);
68 constexpr inline AmbientFluid AmbientFluid::air = AmbientFluid(0.1, 15.11e-6, Material::air); // 15.11e-6 // air viscosity at 20 C and 1 atm [Pa s] = [kg/m*s]
Material
The Material class is a simple container class that defines the conductivity, density and heat capaci...
Definition: material.hpp:7
AmbientFluid::air
static const AmbientFluid air
Predefined air.
Definition: ambientfluid.hpp:60
AmbientFluid::AmbientFluid
constexpr AmbientFluid(const double velocity, const double viscosity, const Material &material)
Construct from Material, velocity and viscosity.
Definition: ambientfluid.hpp:38
AmbientFluid::AmbientFluid
constexpr AmbientFluid(const double velocity, const double viscosity, const double conductivity, const double density, const double heatCapacity)
Basic constructor that requires all material properties.
Definition: ambientfluid.hpp:21
AmbientFluid
The AmbientFluid class is a simple container class that defines the conductivity, density,...
Definition: ambientfluid.hpp:10
Material::conductivity
double conductivity() const
Conductivity getter.
Definition: material.hpp:26
AmbientFluid::seawater
static const AmbientFluid seawater
Predefined seawater.
Definition: ambientfluid.hpp:59
Material::seawater
static const Material seawater
Predefined seawater.
Definition: material.hpp:35
Material::air
static const Material air
Predefined air.
Definition: material.hpp:36
Material::heatCapacity
double heatCapacity() const
Heat capacity getter.
Definition: material.hpp:28
Material::density
double density() const
Density getter.
Definition: material.hpp:27
AmbientFluid::m_velocity
double m_velocity
Fluid velocity [m/s].
Definition: ambientfluid.hpp:63
AmbientFluid::m_viscosity
double m_viscosity
Fluid dynamic viscosity [Pa s] = [kg/m*s].
Definition: ambientfluid.hpp:64
AmbientFluid::velocity
double velocity() const
Velocity getter.
Definition: ambientfluid.hpp:48
AmbientFluid::viscosity
double viscosity() const
Viscosity getter.
Definition: ambientfluid.hpp:49