#ifndef INCLUDE_NASTNAVIERSTOKESPARAMETER_H #define INCLUDE_NASTNAVIERSTOKESPARAMETER_H //----------------------------------------------------------------------------- // NastNavierStokesParameter.h //----------------------------------------------------------------------------- // // Copyright (C) 1998 Technische Universitaet Muenchen, Germany // written by Bernhard Brueck // // This file is part of Nast++ // //----------------------------------------------------------------------------- // CNastNavierStokesParameter enthaelt alle Daten ueber das Fluid, die // fuer eine Simulation notwenidg sind. Es werden dabei nur diejenigen // Paramter betrachtet, die fuer alle von CNastNavierStokes2d/CNastNavierStokes3d // abgeleiten Klassen wichtig sind. // Die Groessen sind alle dimensionslos. Die Klasse ist auch fuer die // Umrechnung von dimensionslosen Groessen in dimensionsbehafte Groessen // verantwortlich //----------------------------------------------------------------------------- // Aenderungen: // #include "NastConfig.h" #include "NastObject.h" #include "NastVector2d.h" class CNastNavierStokesParameter : public CNastObject { public: //------------------------------------------------------------------------- // Konstruktor + Destruktor //------------------------------------------------------------------------- // gx Volumenkraefte X-Richtung // gy Volumenkraefte Y-Richtung // mu dynamische Viskositaet // L Vergroesserungsfaktor der Geometrie // refU Referenzgeschwindigkeit // refP Referenzdruck // refRho Referenzdichte CNastNavierStokesParameter(double gx, double gy, double Reynolds ); CNastNavierStokesParameter(double gx, double gy, double mu, double L, double refU, double refP, double refRho ); virtual ~CNastNavierStokesParameter(); //------------------------------------------------------------------------- // Zugriffsfunktionen (dimensionslose Groessen) //------------------------------------------------------------------------- // prandtl() Prandtlzahl // reynolds() Reynoldszahl // gx() Volumenkraefte X-Richtung // gy() Volumenkraefte Y-Richtung double prandtl() const; double reynolds() const; double gx() const; double gy() const; //------------------------------------------------------------------------- // Umrechung //------------------------------------------------------------------------- // Umrechnungen zwischen den dimensionslosen und den dimensionsbehafteten // Groessen. // // convertSimToRealTime (t) dimensionslos t -> dimensionbehaftet t // convertSimToRealGeometry(x) dimensionslos x -> dimensionbehaftet x // convertSimToRealPressure(p) dimensionslos P -> dimensionbehaftet P // convertSimToRealVelocity(v) dimensionslos u,v -> dimensionbehaftet u,v // convertSimToRealVelocity(vec) dimensionslos u,v -> dimensionbehaftet u,v // convertSimToRealVolForce(g) dimensionslos g -> dimensionbehaftet g // // convertRealToSimTime (t) dimensionbehaftet t -> dimensionslos t // convertRealToSimGeometry(x) dimensionbehaftet x -> dimensionslos x // convertRealToSimPressure(p) dimensionbehaftet P -> dimensionslos P // convertRealToSimVelocity(v) dimensionbehaftet u,v -> dimensionslos u,v // convertRealToSimVelocity(vec) dimensionbehaftet u,v -> dimensionslos u,v // convertRealToSumVolForce(g) dimensionbehaftet g -> dimensionslos g // double convertSimToRealTime ( double t ) const; double convertSimToRealGeometry( double x ) const; double convertSimToRealPressure( double p ) const; double convertSimToRealVelocity( double v ) const; CNastVector2d convertSimToRealVelocity( CNastVector2d &vec) const; double convertSimToRealVolForce( double g ) const; double convertRealToSimTime ( double t ) const; double convertRealToSimGeometry( double x ) const; double convertRealToSimPressure( double p ) const; double convertRealToSimVelocity( double v ) const; CNastVector2d convertRealToSimVelocity( CNastVector2d &vec) const; double convertRealToSimVolForce( double g ) const; //------------------------------------------------------------------------- // Debug //------------------------------------------------------------------------- // debugInfo gibt Information ueber den Zustand des Objekts aus // assertValid testet das Objekt auf Integritaet // virtual void debugDump( CNastDumpContext &dumpContext ) const; virtual void assertValid() const; private: //------------------------------------------------------------------------- // Membervariablen //------------------------------------------------------------------------- double m_L; // Vergroesserungsfaktor der Geometrie double m_refU; // Referenzgroesse Geschwindigkeit double m_refP; // Referenzgroesse Druck double m_refRho; // Referenzgroesse Dichte double m_reynolds; // Reynoldszahl double m_gx; // Volumenkraefte X-Richtung double m_gy; // Volumenkraefte Y-Richtung double m_prandtl; // Prandtlzahl }; //------------------------------------------------------------------------- // inline Zugriffsfunktionen //------------------------------------------------------------------------- // re() Reynoldszahl // gx() Volumenkraefte X-Richtung // gy() Volumenkraefte Y-Richtung inline double CNastNavierStokesParameter::reynolds() const { NAST_ASSERT_VALID(this); return m_reynolds; } inline double CNastNavierStokesParameter::gx() const { NAST_ASSERT_VALID(this); return m_gx; } inline double CNastNavierStokesParameter::gy() const { NAST_ASSERT_VALID(this); return m_gy; } #endif // INCLUDE_NASTNAVIERSTOKESPARAMETER_H