private int approcher_rafiner() throws Exception {
		// double totalPendingIter;
		int j, k;
		int result;
		result = 0;
		while (this.totalPendingIter > 0) {
			result = this.section.poincareMap();
			if (result != 0) {
				break;
			}
			if (Math.abs(this.section.poincareEndVector[1]
					- this.aproxEndBodyDistance)
					/ this.aproxEndBodyDistance < this.aproxTolErr) {
				break;
			}
			k = 0;
			for (j = 0; j < 6; j++) {
				if (j == 1) {
					continue;
				}
				if (Math.abs(this.section.poincareDifMap[1 + 6 * j]) > Math
						.abs(this.section.poincareDifMap[1 + 6 * k])) {
					k = j;
				}
			}
			if (Math.abs(this.section.poincareDifMap[1 + 6 * k]) < getIntegrator().paramTOL
					* Math.abs(this.section.poincareEndVector[1]
							- this.aproxEndBodyDistance)) {
				result = 12;
				break;
			}
			this.section.poincareStartVector[k] -= (this.section.poincareEndVector[1] - this.aproxEndBodyDistance)
					/ this.section.poincareDifMap[1 + 6 * k];
			this.totalPendingIter--;
		}
		if (this.totalPendingIter <= 0) {
			result = 13;
		}
		return result;
	}