#ifndef INCLUDE_NASTBOUNDARYPOINT2D_H #define INCLUDE_NASTBOUNDARYPOINT2D_H //----------------------------------------------------------------------------- // NastBoundaryPoint2d.h //----------------------------------------------------------------------------- // // Copyright (C) 1998 Technische Universitaet Muenchen, Germany // written by Bernhard Brueck // // This file is part of Nast++ // //----------------------------------------------------------------------------- // CNastBoundaryPoint beschreibt eine Punkt auf dem Rand einer Geometrie. // Folgende Groessen werden beruecksichtigt: // - Position des Punktes // - Geschwindigkeit des Randes an diesem Punkt // - Normalenvektor auf den Rand // - Randbedingung an dieser Stelle //----------------------------------------------------------------------------- // Aenderungen: // #include "NastConfig.h" #include "NastPoint2d.h" class CNastBoundaryPoint2d : public CNastPoint2d { public: //------------------------------------------------------------------------- // Randbedingungen //------------------------------------------------------------------------- // Achtung die Randbedingungen sind innerhalb von CNastBoundaryPoint2d // definiert ! Um sie zu verwenden muss der Namensraum angegeben werden. // z.B. // if( pPnt->boundaryCondition() == CNastBoundaryPoint2d::INFLOW ) // enum Condition { INFLOW, // Einstroembedingung OUTFLOW, // Ausstroembedingung SLIP, // Rutschbedingung NOSLIP // Haftbedingung }; //------------------------------------------------------------------------- // Konstruktor + Destruktor //------------------------------------------------------------------------- // pntPos Position des Punktes // vecNorm Normalenvektor auf den Rand // vecVel Geschwindigkeitsvektor an der Stelle // cond die Randbedingung // CNastBoundaryPoint2d( const CNastPoint2d &pntPos, const CNastVector2d &vecNorm, const CNastVector2d &vecVel, const Condition cond ); virtual ~CNastBoundaryPoint2d(); CNastBoundaryPoint2d( const CNastBoundaryPoint2d &other); const CNastBoundaryPoint2d& operator=( const CNastBoundaryPoint2d &other ); //------------------------------------------------------------------------- // Memberfunktionen //------------------------------------------------------------------------- // normal() Normalenvektor auf dem Rand // boundaryCondition() Randbedingung // velocity() Geschwindigkeit des Rands bzw. der Stroemung // bei der Einstroembedingung // const CNastVector2d& velocity() const; const CNastVector2d& normal() const; CNastBoundaryPoint2d::Condition boundaryCondition() 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 //------------------------------------------------------------------------- CNastVector2d m_vecNorm; // Normalenvektor auf dem Rand CNastVector2d m_vecVel; // Geschwindigkeit des Randes Condition m_cond; // Randbedingung }; //------------------------------------------------------------------------- // inline //------------------------------------------------------------------------- inline const CNastVector2d& CNastBoundaryPoint2d::velocity() const { return m_vecVel; } inline const CNastVector2d& CNastBoundaryPoint2d::normal() const { return m_vecNorm; } inline CNastBoundaryPoint2d::Condition CNastBoundaryPoint2d::boundaryCondition() const { return m_cond; } #endif // INCLUDE_NASTBOUNDARYPOINT2D_H