Hauptseite | Liste aller Namensbereiche | Klassenhierarchie | Auflistung der Klassen | Verzeichnisse | Auflistung der Dateien | Klassen-Elemente | Datei-Elemente

chemieObj Klassenreferenz

class chemieObj rechnet chemische Einheiten um und berechnet nach verschiedenen Verfahren die Dichte von Lösungen mariner Evaporite. Mehr ...

#include <chemieObj.h>

Zusammengehörigkeiten von chemieObj:

Collaboration graph
[Legende]
Aufstellung aller Elemente

Öffentliche Typen

enum  AnionenKationen_MapIndex {
  n_2Na = 0, n_2K = 1, n_Mg = 2, n_Ca = 3,
  n_Cl = 4, n_SO4 = 5, n_CO3 = 6, n_H2O = 7
}
enum  Verbindungen_MapIndex {
  n_2NaCl = 0, n_2KCl = 1, n_MgCl2 = 2, n_Na2SO4 = 3,
  n_K2SO4 = 4, n_MgSO4 = 5, n_CaSO4 = 6, n_CaCl2 = 7,
  n_CaCO3 = 8, n_MgCO3 = 9, n_Na2CO3 = 10
}
enum  Jaenecke_MapIndex {
  nJ_Mg = 0, nJ_SO4 = 1, nJ_2K = 2, nJ_H2O = 3,
  nJ_2Na = 4, nJ_Sum = 5
}

Öffentliche Methoden

 chemieObj (monninparameter *monninparams)
virtual ~chemieObj ()
vector< double > dichteberechner (double temper, double zwei_NaCl, double zwei_KCl, double MgCl2, double MgSO4, double Na2SO4)
vector< double > dichteberechner (double temper, const Vector3D &BaryKoord, const double &Jaen_H2O, const double &Jaen_2Na)

Private Methoden

void setMolgewichteAK (void)
void setMolgewichteVB (void)
void konv_mol_in_mass_VB (void)
void konv_Verb_Ion_Mol (void)
void konv_mol_in_mass_AK (void)
void Salzloesungsberechnung_Natriumzweig ()
void Salzloesungsberechnung_Chlorzweig ()
void Salzloesungsberechnung_Zweig_1 ()
void Salzloesungsberechnung_Zweig_2 ()
void Salzloesungsberechnung_Zweig_3 ()
void Salzloesungsberechnung_Zweig_4 ()
void Salzloesungsberechnung_Zweig_5 ()
void Salzloesungsberechnung_Zweig_6 ()
void Salzloesungsberechnung_Zweig_7 ()
void Salzloesungsberechnung_Zweig_8 ()
void Salzloesungsberechnung_Zweig_9 ()
void Salzloesungsberechnung_Zweig_3_und_4 ()
void Salzloesungsberechnung_Zweig_5_und_6 ()
void Salzloesungsberechnung_Zweig_8_und_9 ()
void Salzloesungsberechnung_Zweig_2_bis_4 ()
void Salzloesungsberechnung_Zweig_7_bis_9 ()
void Salzloesungsberechnung_Zweig_1_bis_4 ()
void Salzloesungsberechnung_Zweig_5_bis_9 ()
void konv_Ion_Verb_Mol (void)
double generate_DAns_dichte (void)
double generate_Monnin_dichte (monninparameter *monninparams)
double Monnin_dichte_of_Type (double *Daten, int IType, monninparameter *monninparams)
double generate_Ezrochi_dichte (double temper)
double generate_Durchschnittsdichte (vector< double > &DichteVektor)

Private Attribute

monninparameterMonninparameter
map< enum Jaenecke_MapIndex,
double > 
Jaenecke
map< enum Verbindungen_MapIndex,
double > 
MolPro1000MolH2O_VB
map< enum AnionenKationen_MapIndex,
double > 
MolPro1000MolH2O_AK
map< enum AnionenKationen_MapIndex,
double > 
MolgewichteAK
map< enum Verbindungen_MapIndex,
double > 
MolgewichteVB
map< enum Verbindungen_MapIndex,
double > 
MasseAnteil_in_ProzentVB
map< enum AnionenKationen_MapIndex,
double > 
MasseAnteil_in_ProzentAK

Ausführliche Beschreibung

class chemieObj rechnet chemische Einheiten um und berechnet nach verschiedenen Verfahren die Dichte von Lösungen mariner Evaporite.

Dichteberechnungsverfahren:

Das Verfahren von D'Ans:

Diese Berechnungsmethode der Dichte basiert auf einer erstmals in D'Ans et al. (1940) und später in v.Borstel (1992) beschriebenen Vorgehensweise. Der Rechenweg verläuft nach der TP-Unit zur Dichteberechnung ueber Polynomial-Fits des Programms "Lauge": generate_DAns_dichte()

Das Verfahren von Monnin:

Berechnet unter Ausnutzung des Wissens über die MasseAnteile von Anionen&Kationen (in %) die Dichte der Lösung. Monnins Methode basiert auf dem Ioneninteraktionsmodell von Pitzer. generate_Monnin_dichte(monninparameter *monninparams)

Das Verfahren von Ezrochi:

Berechnet aus den Gewichtsprozent der Verbindungen die Dichte. generate_Ezrochi_dichte(double temper)

Autor:
Robert Hartmann
Datum:
1.3.2006
Version:
1.0 Kommentare hinzugefügt (Doxygen).

0.2 Toten Code entfernt.

0.1


Dokumentation der Aufzählungstypen

enum chemieObj::AnionenKationen_MapIndex
 

Aufzählungswerte:
n_2Na 
n_2K 
n_Mg 
n_Ca 
n_Cl 
n_SO4 
n_CO3 
n_H2O 

enum chemieObj::Jaenecke_MapIndex
 

Aufzählungswerte:
nJ_Mg 
nJ_SO4 
nJ_2K 
nJ_H2O 
nJ_2Na 
nJ_Sum 

enum chemieObj::Verbindungen_MapIndex
 

Aufzählungswerte:
n_2NaCl 
n_2KCl 
n_MgCl2 
n_Na2SO4 
n_K2SO4 
n_MgSO4 
n_CaSO4 
n_CaCl2 
n_CaCO3 
n_MgCO3 
n_Na2CO3 


Beschreibung der Konstruktoren und Destruktoren

chemieObj::chemieObj monninparameter monninparams  ) 
 

chemieObj::~chemieObj  )  [virtual]
 


Dokumentation der Elementfunktionen

vector< double > chemieObj::dichteberechner double  temper,
const Vector3D BaryKoord,
const double &  Jaen_H2O,
const double &  Jaen_2Na
 

Berechnet die Dichte nach D'Ans, Monnin, Ezrochi sowie deren Durchschnitt.

Parameter:
[in] temper Die Temperatur in [°C].
[in] &BaryKoord Auf 100 normierte baryzentrische Koordinaten im Jänecke-Dreieck.
[in] &Jaen_H2O Zugehöriger H2O-Wert in Jänecke-Prozent.
[in] &Jaen_2Na Zugehöriger 2Na-Wert in Jänecke-Prozent.
Rückgabe:
4-Tupel (=Vektor) mit 4 Elementen:
  • [0] Dichte D'Ans
  • [1] Dichte Monnin
  • [2] Dichte Ezrochi
  • [3] Dichte Durchschnitt

vector< double > chemieObj::dichteberechner double  temper,
double  zwei_NaCl,
double  zwei_KCl,
double  MgCl2,
double  MgSO4,
double  Na2SO4
 

Berechnet die Dichte nach D'Ans, Monnin, Ezrochi sowie deren Durchschnitt.

Parameter:
[in] temper Die Temperatur in [°C].
[in] zwei_NaCl Der Wert für 2NaCl in mol pro 1000 mol H2O.
[in] zwei_KCl Der Wert für 2KCl in mol pro 1000 mol H2O.
[in] MgCl2 Der Wert für MgCl2 in mol pro 1000 mol H2O.
[in] MgSO4 Der Wert für MgSO4 in mol pro 1000 mol H2O.
[in] Na2SO4 Der Wert für Na2SO4 in mol pro 1000 mol H2O.
Rückgabe:
4-Tupel (=Vektor) mit 4 Elementen:
  • [0] Dichte D'Ans
  • [1] Dichte Monnin
  • [2] Dichte Ezrochi
  • [3] Dichte Durchschnitt

double chemieObj::generate_DAns_dichte void   )  [private]
 

Berechnet unter Ausnutzung des Wissens über die prozentuale Gewichtsanteile von Verbindungen die Dichte der Lösung. Diese Berechnungsmethode der Dichte basiert auf einer erstmals in D'Ans et al. (1940) und später in v.Borstel (1992) beschriebenen Vorgehensweise.

Rückgabe:
Dichte D'Ans

double chemieObj::generate_Durchschnittsdichte vector< double > &  DichteVektor  )  [private]
 

Parameter:
[in] &DichteVektor Vektor, die ersten 3 Komponenten sind Dichtewerte nach D'Ans, Monnin, Ezrochi
[out] &DichteVektor Die vierte Komponente nimmt den Durchschnittswert auf
Rückgabe:
Gibt den Durchschnittsdichtewert zurück
Berechnet den Durchschnittswert der Dichte

double chemieObj::generate_Ezrochi_dichte double  Temp  )  [private]
 

Berechnet aus den Gewichtsprozent der Verbindungen die Dichte

Parameter:
[in] Temp Temperatur
Rückgabe:
Dichte nach Ezrochi

double chemieObj::generate_Monnin_dichte monninparameter monninparams  )  [private]
 

Berechnet unter Ausnutzung des Wissens über die MasseAnteile von Anionen&Kationen (in %) die Dichte der Lösung.

Monnins Methode basiert auf dem Ioneninteraktionsmodell von Pitzer.

Parameter:
[in] monninparams Die Pitzer-Parameter, die Monnin verwendet hat
Rückgabe:
Dichte nach Monnin
Das Verfahren wurde im Programm "VOPO", welches in Fortran geschrieben ist -- "rho.f" --, benutzt.

Original Kommentar:

c ********************************************************************

c

c A program for the calculation of the volumetric properties of natural

c waters at 25C: density of the solution, partial molal volumes of the

c solutes and concentration scales conversion.

c Christophe MONNIN, July 1993

c

c It is based on the development of Pitzer's ion interaction model

c for the volumetric properties of complex electrolyte solutions.

c (MONNIN C. (1989), Geochim. Cosmochim. Acta, 53(6),1177-1188)

c

c ********************************************************************

"Bei der Berechnung nach Monnin sind einige Parameter mehr oder weniger geraten und sollten bei Bedarf geaendert werden koennen" (Kai H. Schmidt, Juni 2005), daher ist es zwingend erforderlich die Parameterdatei "monnin.par" auslesen zu lassen.

Konvertierung in "DichteRho.pas", eine TP-Unit zur Dichteberechnung ueber Pitzer-Koefizzienten, durch Kai H. Schmidt (2005).

AnsiC-File "DichteRho.c": Output from p2c 1.21alpha-07.Dec.93, the Pascal-to-C translator From input file "DichteRho.pas"

"DichteRho.c" überarbeitet, aufgesplittet und in die C++ Klassenstruktur eingebettet, dabei habe ich es sinnvoll erachtet, dass das Einlesen der Pitzer-Parameter aus einer Datei nicht von Instanzen dieser Klasse gemacht wird. Das Einlesen dieser Parameter geschieht mit Methoden der Klasse "monnin_parameter", und muss vor dem Aufruf dieser Klasse geschehen sein.

void chemieObj::konv_Ion_Verb_Mol void   )  [private]
 

Berechnet aus den Ionen die fiktiven Komponenten

void chemieObj::konv_mol_in_mass_AK void   )  [private]
 

Berechnet den prozentualen Masseanteil von Anionen&Kationen anhand ihrer Häufigkeit (mol pro 1000 mol H2O) und und ihres jeweiligen Ionen-gewichtes.

void chemieObj::konv_mol_in_mass_VB void   )  [private]
 

Berechnet den prozentualen Masseanteil von Verbindungen anhand ihrer Häufigkeit (mol pro 1000 mol H2O) und und ihres jeweiligen Molgewichtes.

void chemieObj::konv_Verb_Ion_Mol void   )  [private]
 

Berechnet die Anzahl der Anionen&Kationen anhand ihrer Häufigkeit in den Verbindungen (mol pro 1000 mol H2O)

double chemieObj::Monnin_dichte_of_Type double *  Daten,
int  IType,
monninparameter monninparams
[private]
 

Wird von generate_Monnin_dichte(...) benötigt.

Siehe auch:
generate_Monnin_dichte(monninparameter* monninparams).
Parameter:
[in] *Daten Array mit Werten des prozentualen Masseanteils der einzelnen Ionen.
[in] IType Wählt die Einheit:
  • 1 g/kg
  • 2:g/L
  • 3:mol/kg
  • 4:mol/kg.H20 (molality)
  • 5:mol/L
In dieser Anwendung ist nur der Typ 1, also g/kg, sinnvoll.
[in] *monninparams Objekt mit den von Monnin benutzten Pitzer-Koeffizienten
Rückgabe:
Dichte nach Monnin

void chemieObj::Salzloesungsberechnung_Chlorzweig  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Natriumzweig  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_1  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_1_bis_4  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_2  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_2_bis_4  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_3  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_3_und_4  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_4  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_5  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_5_bis_9  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_5_und_6  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_6  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_7  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_7_bis_9  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_8  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_8_und_9  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::Salzloesungsberechnung_Zweig_9  )  [private]
 

Darf nur durch folgendes Aufgerufen werden:

Siehe auch:
konv_Ion_Verb_Mol()

void chemieObj::setMolgewichteAK void   )  [private]
 

Setzt das Molgewicht für Anionen + Kationen

void chemieObj::setMolgewichteVB void   )  [private]
 

Setzt das Molgewicht für Verbindungen


Dokumentation der Datenelemente

map<enum Jaenecke_MapIndex,double> chemieObj::Jaenecke [private]
 

map<enum AnionenKationen_MapIndex,double> chemieObj::MasseAnteil_in_ProzentAK [private]
 

map<enum Verbindungen_MapIndex,double> chemieObj::MasseAnteil_in_ProzentVB [private]
 

map<enum AnionenKationen_MapIndex,double> chemieObj::MolgewichteAK [private]
 

map<enum Verbindungen_MapIndex,double> chemieObj::MolgewichteVB [private]
 

map<enum AnionenKationen_MapIndex,double> chemieObj::MolPro1000MolH2O_AK [private]
 

map<enum Verbindungen_MapIndex,double> chemieObj::MolPro1000MolH2O_VB [private]
 

monninparameter* chemieObj::Monninparameter [private]
 


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
Erzeugt am Wed Apr 19 00:18:55 2006 für Quinview von  doxygen 1.4.4