rendered paste bodyclass coupled_visitor_2d : public visitor { public: coupled_visitor_2d(volume& Volume, long Offset) : visitor(Volume), m_offset(Offset) {} virtual void visit(particle& Particle, cell& Cell); private: class interior_visitor_base : public cell_visitor { public: /// MomentumRow and ContinuityRow contain the respective equation numbers. interior_visitor_base(volume& Volume, particle& Particle, cell& Cell, long MomentumRow, long ContinuityRow, long Offset) : cell_visitor(Volume, Particle, Cell), m_momentum_row(MomentumRow), m_continuity_row(ContinuityRow), m_offset(Offset) {} protected: /// Gradient of kernel vector3 grad(particle& Particle); /// Calculate momentum coefficients void momentum(particle& Particle); /// Calculate continuity coefficients void continuity(particle& Particle); private: long m_momentum_row; long m_continuity_row; // only do momentum equations bool m_momentum_only; // only do continuity bool m_continuity_only; // offset for continuity equation long m_offset; }; // class interior_visitor_base class interior_visitor_momentum : public interior_visitor_base { public: interior_visitor_momentum(volume& Volume, particle& Particle, cell& Cell, long MomentumRow, long ContinuityRow, long Offset) : interior_visitor_base(Volume, Particle, Cell, MomentumRow, ContinuityRow, Offset) {} virtual void visit(particle& Particle, cell& Cell); }; class interior_visitor_continuity : public interior_visitor_base { public: interior_visitor_continuity(volume& Volume, particle& Particle, cell& Cell, long MomentumRow, long ContinuityRow, long Offset) : interior_visitor_base(Volume, Particle, Cell, MomentumRow, ContinuityRow, Offset) {} virtual void visit(particle& Particle, cell& Cell); }; class interior_visitor_momentum_continuity : public interior_visitor_base { public: interior_visitor_momentum_continuity(volume& Volume, particle& Particle, cell& Cell, long MomentumRow, long ContinuityRow, long Offset) : interior_visitor_base(Volume, Particle, Cell, MomentumRow, ContinuityRow, Offset) {} virtual void visit(particle& Particle, cell& Cell); }; long m_offset;}; // class coupled_visitor_2d