예제 #1
0
	public: void calculateFieldE(){
		CellArray ca = *Calculater::ca;

		for(int axis=0; axis<3; axis++){
			for(int i=0;i<ca.getSize();i++){
				Cell cell = *ca.getCell(i);
				if(cell.getRib(axis, Cell::dr)->getMark() == Rib::INTERNAL_RIB_MARK) calculateFieldE(cell.getRib(axis, Cell::dr));
			}
		}		
	}
예제 #2
0
	public: void calculateFieldB(){
		CellArray ca = *Calculater::ca;

		for(int axis=0; axis<3; axis++){
			for(int i=0;i<ca.getSize();i++){
				Cell cell = *ca.getCell(i);
				if(cell.getSide(axis, Cell::BACKWARD_SIDE)->getMark() == Side::INTERNAL_SIDE_MARK) 
						calculateFieldB(cell.getSide(axis, Cell::BACKWARD_SIDE));
			}
		}		
	}
예제 #3
0
	public: void calculateFlows(){
		cout << "test" << endl;

		CellArray ca = *Calculater::ca;

		for(int axis=0; axis<3; axis++){
			for(int i=0;i<ca.getSize();i++){
				Cell lc = *ca.getCell(i);
				if(lc.getCell(axis, Cell::FORWARD_SIDE) == NULL) continue;
				Cell rc = *lc.getCell(axis, Cell::FORWARD_SIDE);
				lc.getSide(axis, Cell::FORWARD_SIDE)->setFlow(calculateFlow(axis, lc, rc));
			}
		}
	}