示例#1
0
	private: void calculateFieldB(Side* side){
		int axis = side->getAxis();

		double fEx = side->getRib(Side::UP_RIB)->getE() + side->getRib(Side::UP_RIB)->getdE();
		double bEx = side->getRib(Side::DOWN_RIB)->getE() + side->getRib(Side::DOWN_RIB)->getdE();
		double fEy = side->getRib(Side::RIGHT_RIB)->getE() + side->getRib(Side::RIGHT_RIB)->getdE();
		double bEy = side->getRib(Side::LEFT_RIB)->getE() + side->getRib(Side::LEFT_RIB)->getdE();

		double dx = side->getBCell()->getH((axis+1)%3);
		double dy = side->getBCell()->getH((axis+2)%3);

		double dEx = fEx - bEx;
		double dEy = fEy - bEy;

		double dB = -1.0 *  Constants::c * ca->getTimeStep() * (dEy/dx - dEx/dy);

		side->setdB(dB);
	}