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 |
|