extendedfinitedifferenceboundary2d.hh
来自「open lattice boltzmann project www.open」· HH 代码 · 共 355 行 · 第 1/2 页
HH
355 行
}//////// ExtendedStraightFdBoundaryPostProcessorGenerator ////////////////////////////////template<typename T, template<typename U> class Lattice, int direction, int orientation>ExtendedStraightFdBoundaryProcessorGenerator2D<T,Lattice,direction,orientation>:: ExtendedStraightFdBoundaryProcessorGenerator2D(int x0_, int x1_, int y0_, int y1_) : PostProcessorGenerator2D<T,Lattice>(x0_, x1_, y0_, y1_){ }template<typename T, template<typename U> class Lattice, int direction, int orientation>PostProcessor2D<T,Lattice>* ExtendedStraightFdBoundaryProcessorGenerator2D<T,Lattice,direction,orientation>::generate() const{ return new ExtendedStraightFdBoundaryPostProcessor2D<T,Lattice,direction,orientation> ( this->x0, this->x1, this->y0, this->y1 );}template<typename T, template<typename U> class Lattice, int direction, int orientation>PostProcessorGenerator2D<T,Lattice>* ExtendedStraightFdBoundaryProcessorGenerator2D<T,Lattice,direction,orientation>::clone() const{ return new ExtendedStraightFdBoundaryProcessorGenerator2D<T,Lattice,direction,orientation> (this->x0, this->x1, this->y0, this->y1);} ////////// Class ExtendedFdBoundaryManager2D /////////////////////////////////////////template<typename T, template<typename U> class Lattice, class MixinDynamics>class ExtendedFdBoundaryManager2D {public: template<int direction, int orientation> static Momenta<T,Lattice>* getVelocityBoundaryMomenta(); template<int direction, int orientation> static Dynamics<T,Lattice>* getVelocityBoundaryDynamics(T omega, Momenta<T,Lattice>& momenta); template<int direction, int orientation> static PostProcessorGenerator2D<T,Lattice>* getVelocityBoundaryProcessor(int x0, int x1, int y0, int y1); template<int direction, int orientation> static Momenta<T,Lattice>* getPressureBoundaryMomenta(); template<int direction, int orientation> static Dynamics<T,Lattice>* getPressureBoundaryDynamics(T omega, Momenta<T,Lattice>& momenta); template<int direction, int orientation> static PostProcessorGenerator2D<T,Lattice>* getPressureBoundaryProcessor(int x0, int x1, int y0, int y1); template<int xNormal, int yNormal> static Momenta<T,Lattice>* getExternalVelocityCornerMomenta(); template<int xNormal, int yNormal> static Dynamics<T,Lattice>* getExternalVelocityCornerDynamics(T omega, Momenta<T,Lattice>& momenta); template<int xNormal, int yNormal> static PostProcessorGenerator2D<T,Lattice>* getExternalVelocityCornerProcessor(int x, int y); template<int xNormal, int yNormal> static Momenta<T,Lattice>* getInternalVelocityCornerMomenta(); template<int xNormal, int yNormal> static Dynamics<T,Lattice>* getInternalVelocityCornerDynamics(T omega, Momenta<T,Lattice>& momenta); template<int xNormal, int yNormal> static PostProcessorGenerator2D<T,Lattice>* getInternalVelocityCornerProcessor(int x, int y);};template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int direction, int orientation>Momenta<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>::getVelocityBoundaryMomenta(){ return new BasicDirichletBM<T,Lattice,VelocityBM,direction,orientation>;}template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int direction, int orientation>Dynamics<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>:: getVelocityBoundaryDynamics(T omega, Momenta<T,Lattice>& momenta){ return new MixinDynamics(omega, momenta);}template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int direction, int orientation>PostProcessorGenerator2D<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>:: getVelocityBoundaryProcessor(int x0, int x1, int y0, int y1){ return new ExtendedStraightFdBoundaryProcessorGenerator2D<T,Lattice,direction,orientation> (x0, x1, y0, y1);}template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int direction, int orientation>Momenta<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>::getPressureBoundaryMomenta(){ return new BasicDirichletBM<T,Lattice,PressureBM,direction,orientation>;}template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int direction, int orientation>Dynamics<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>:: getPressureBoundaryDynamics(T omega, Momenta<T,Lattice>& momenta){ return new MixinDynamics(omega, momenta);}template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int direction, int orientation>PostProcessorGenerator2D<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>:: getPressureBoundaryProcessor(int x0, int x1, int y0, int y1){ return new ExtendedStraightFdBoundaryProcessorGenerator2D<T,Lattice,direction,orientation> (x0, x1, y0, y1);}template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int xNormal, int yNormal>Momenta<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>::getExternalVelocityCornerMomenta(){ return new FixedVelocityBM<T,Lattice>;}template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int xNormal, int yNormal>Dynamics<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>:: getExternalVelocityCornerDynamics(T omega, Momenta<T,Lattice>& momenta){ return new MixinDynamics(omega, momenta);}template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int xNormal, int yNormal>PostProcessorGenerator2D<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>::getExternalVelocityCornerProcessor(int x, int y){ return new OuterVelocityCornerProcessorGenerator2D<T,Lattice, xNormal,yNormal> (x,y);}template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int xNormal, int yNormal>Momenta<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>::getInternalVelocityCornerMomenta(){ return new InnerCornerVelBM2D<T,Lattice, xNormal,yNormal>;}template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int xNormal, int yNormal>Dynamics<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>:: getInternalVelocityCornerDynamics(T omega, Momenta<T,Lattice>& momenta){ return new CombinedRLBdynamics<T,Lattice, MixinDynamics>(omega, momenta);}template<typename T, template<typename U> class Lattice, class MixinDynamics>template<int xNormal, int yNormal>PostProcessorGenerator2D<T,Lattice>* ExtendedFdBoundaryManager2D<T,Lattice,MixinDynamics>::getInternalVelocityCornerProcessor (int x, int y){ return 0;}////////// Factory functions //////////////////////////////////////////////////template<typename T, template<typename U> class Lattice, typename MixinDynamics>OnLatticeBoundaryCondition2D<T,Lattice>* createExtendedFdBoundaryCondition2D(BlockStructure2D<T,Lattice>& block){ return new BoundaryConditionInstantiator2D < T, Lattice, ExtendedFdBoundaryManager2D<T,Lattice, MixinDynamics> > (block);}} // namespace olb#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?