Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

nodedistribution.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001 The AUTHORS 
00003  *   Romeu Andre' Pieritz, Ph.D.        - romeu_pieritz@hotmail.com
00004  *   Rafael Mendes, Eng.                – mendes_rafael@yahoo.com
00005  *   Rodrigo Ferraz de Andrade, Eng.    – rferraz@iname.com 
00006  * All rights reserved.
00007  *
00008  * Permission to use, copy and distribute this software and its
00009  * documentation for educational and personal use, without fee is hereby granted, 
00010  * provided that the above copyright notice and the following
00011  * two paragraphs appear in all copies of this software.
00012  *
00013  * IN NO EVENT SHALL THE AUTHORS BE LIABLE TO ANY PARTY FOR
00014  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
00015  * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHORS
00016  * HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00017  *
00018  * THE AUTHORS SPECIFICALLY DISCLAIMS ANY WARRANTIES,
00019  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
00020  * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HERE UNDER IS
00021  * ON AN "AS IS" BASIS, AND THE AUTHORS HAVE NO OBLIGATION TO
00022  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
00023  *
00024  * SINMEC Lab. - CFD Sinflow Project - http://www.sinmec.ufsc.br/cfd
00025  */
00026 
00027 
00028 // File Define
00029 #ifndef __CSFL_GEOM_GRID_NODE_DISTRIBUTION_H__
00030 #define __CSFL_GEOM_GRID_NODE_DISTRIBUTION_H__
00031 
00032 
00033 // Include
00034 #include <csfl/sys/core/types.h>
00035 
00036 // Namespace
00037 namespace csfl {
00038 
00042 enum TNDistributionType{
00043         ndtUniform,
00044         ndtExponential,
00045         ndtSymmetrycExp,
00046         ndtGP,
00047         ndtSymmetrycGP
00048 };
00049 
00050 class INodeDistribution
00051 
00055 
00056 {
00057 public:
00058         
00060         INodeDistribution( const int & p_Nodes );
00061 
00065         INodeDistribution( INodeDistribution * p_Copy );
00066         
00067         ~INodeDistribution();
00068 
00069 private:
00070         void AllocateDistribution();
00071         void DeleteDistribution();
00072 
00073 public:
00074         
00076         int DistributionSize() const { return m_Size; }
00077 
00078 protected:
00079         int m_Size;
00080         double * m_Distribution;
00081 
00082 public:
00083         
00085         double operator[]( const int & p_i ) const{ return m_Distribution[p_i];}
00086 };
00087 
00088 //==============================================================================
00089 
00090 class INDUniform : public INodeDistribution
00095 {
00096 public:
00100         INDUniform( const int & p_Nodes );      
00101 };      
00102 
00103 //==============================================================================
00104 
00105 class INDExponential : public INodeDistribution
00110 {
00111 public:
00116         INDExponential( const int & p_Nodes, const double & p_Parameter );      
00117 };
00118 
00119 //==============================================================================
00120 
00121 class INDSymmetrycExp : public INodeDistribution
00126 {
00127 public:
00132         INDSymmetrycExp( const int & p_Nodes, const double & p_Parameter );     
00133 };
00134 
00135 //==============================================================================
00136 
00137 class INDGeometricProgression : public INodeDistribution
00142 {
00143 public:
00148         INDGeometricProgression( const int & p_Nodes, const double & p_Parameter );     
00149 };
00150 
00151 //==============================================================================
00152 
00153 class INDSymmetrycGP : public INodeDistribution
00158 {
00159 public:
00164         INDSymmetrycGP( const int & p_Nodes, const double & p_Parameter );      
00165 };
00166 
00167 //==============================================================================
00168 } // csfl namespace
00169 
00170 #endif// __CSFL_GEOM_GRID_AIRFOIL_H__

 

CFD Project | Documents | Downloads | Contact us | Use Terms

 

© SINMEC/EMC/UFSC, 2001.

All rights reserved.

Last Update: Jan. 18, 2002

 Webmaster