Commit 81baebb8 authored by Henderson, Shane's avatar Henderson, Shane
Browse files

Add surface tension tie-ins

parent fc168f60
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -51,7 +51,8 @@ build_windows:
      -Dsaline_ENABLE_Fortran=OFF
      -Dsaline_ENABLE_Python=ON
      -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE
    - cmake --build build --target ALL_BUILD --config RELEASE
    - cmake --build "$CI_PROJECT_DIR/build" --target ALL_BUILD --config RELEASE
    - cmake --build "$CI_PROJECT_DIR/build" --target SalinePy_wheel --config RELEASE
    - ctest --build-config RELEASE --test-dir build
    - cmake --install build --prefix install
    - $WHL_FILE = (Get-Item ${CI_PROJECT_DIR}\build\src\python\dist\*.whl).FullName
+16 −0
Original line number Diff line number Diff line
@@ -101,6 +101,14 @@ class Data_Store
        std::pair<double,double> rho_rng() const;
        std::string rho_ref() const;

        // Surface Tension
        double surfaceTension(double temperature, double pressure = 101.325) const;
        double surfaceTension_h(double enthalpy, double pressure = 101.325) const;
        bool valid_surfaceTension() const;
        double surfaceTension_unc() const;
        std::pair<double,double> surfaceTension_rng() const;
        std::string surfaceTension_ref() const;

        // enthalpy given temperature
        double h_t(double t) const;

@@ -170,6 +178,14 @@ class Data_Store
    virtual std::pair<double,double> rho_rng(Id id, Id data_id) const = 0;
    virtual std::string rho_ref(Id id, Id data_id) const = 0;

    // density
    virtual double surfaceTension(Id id, Id data_id, double temperature, double pressure = 101.325) const = 0;
    virtual double surfaceTension_h(Id id, Id data_id, double enthalpy, double pressure = 101.325) const = 0;
    virtual bool valid_surfaceTension(Id id, Id data_id) const = 0;
    virtual double surfaceTension_unc(Id id, Id data_id) const = 0;
    virtual std::pair<double,double> surfaceTension_rng(Id id, Id data_id) const = 0;
    virtual std::string surfaceTension_ref(Id id, Id data_id) const = 0;

    // enthalpy
    virtual double h_t(Id id, Id data_id, double temperature) const = 0;

+28 −0
Original line number Diff line number Diff line
@@ -118,6 +118,16 @@ public:
  std::pair<double, double> rho_rng(Id id, Id data_id) const;
  std::string rho_ref(Id id, Id data_id) const;

  // surface tension
  double surfaceTension(Id id, Id data_id, double temperature,
                        double pressure = 101.325) const;
  double surfaceTension_h(Id id, Id data_id, double enthalpy,
                          double pressure = 101.325) const;
  virtual bool valid_surfaceTension(Id id, Id data_id) const;
  double surfaceTension_unc(Id id, Id data_id) const;
  std::pair<double, double> surfaceTension_rng(Id id, Id data_id) const;
  std::string surfaceTension_ref(Id id, Id data_id) const;

  // enthalpy
  double h_t(Id id, Id data_id, double temperature) const;

@@ -193,6 +203,16 @@ private:
    // molecular weight
    double molecularWeight() const { return m_mole_weight; }

    // surface tension
    double surfaceTension(double t) const { return m_st_a - (m_st_b * t); }
    double surfaceTension_h(double h) const { return surfaceTension(h_to_t(h)); }
    bool valid_surfaceTension() const { return st_a() != 0.0; }
    double surfaceTension_unc() const { return m_st_unc; }
    std::string surfaceTension_ref() const { return m_st_ref; }

    double st_a() const {return m_st_a; }
    double st_b() const {return m_st_b; }

    // density
    double rho(double t) const { return m_rho_a - m_rho_b * t; }
    double rho_h(double h) const { return rho(h_to_t(h)); }
@@ -320,6 +340,14 @@ private:
    std::pair<double, double> m_cp_rng;
    std::string m_cp_ref;

    // surface tension
    double m_st_a = 0.0;
    double m_st_b = 0.0;
    double m_st_unc = 0.0;
    DataQualifier m_st_unc_qualifier;
    std::pair<double, double> m_st_rng;
    std::string m_st_ref;

    // enthalpy to temperature table
    std::vector<double> m_h;

+12 −0
Original line number Diff line number Diff line
@@ -98,6 +98,18 @@ public:
  std::pair<double, double> rho_rng(Id id, Id data_id) const;
  std::string rho_ref(Id /* id */, Id /* data_id */) const { return "----"; }

  // surface tension
  double surfaceTension(Id id, Id data_id, double temperature,
                        double pressure = 101.325) const;
  double surfaceTension_h(Id id, Id data_id, double enthalpy,
                          double pressure = 101.325) const;
  virtual bool valid_surfaceTension(Id id, Id data_id) const;
  double surfaceTension_unc(Id /* id */, Id /* data_id */) const { return .2; }
  std::pair<double, double> surfaceTension_rng(Id id, Id data_id) const;
  std::string surfaceTension_ref(Id /* id */, Id /* data_id */) const {
    return "----";
  }

  // enthalpy
  double h_t(Id id, Id data_id, double temperature) const;

+9 −0
Original line number Diff line number Diff line
@@ -83,6 +83,15 @@ class Thermophysical_Properties
    std::pair<double,double> rho_rng() const{return m_impl.rho_rng();}
    bool valid_rho() const;

    // Surface Tension
    double surfaceTension(double temperature, double pressure = 101.325) const;
    double surfaceTension_h(double enthalpy, double pressure = 101.325) const;
    double surfaceTension_kgm3(double temperature, double pressure = 101.325) const;
    double surfaceTension_h_kgm3(double enthalpy, double pressure = 101.325) const;
    double surfaceTension_unc() const {return m_impl.surfaceTension_unc();}
    std::pair<double,double> surfaceTension_rng() const{return m_impl.surfaceTension_rng();}
    bool valid_surfaceTension() const;

    // enthalpy
    double h_t(double temperature) const;
    double h_t_kg(double temperature) const;
Loading