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 + -
显示快捷键?