12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package holeg;
- import holeg.model.Grid;
- import holeg.power_flow.PowerFlowProblem;
- import holeg.power_flow.SolverResult;
- import java.util.ArrayList;
- import java.util.List;
- public class HolegPowerFlowContext {
- public final Object lock = new Object();
- public List<Grid> lastSolvedGrids = new ArrayList<>();
- public Thread solverJob;
- public float solverTimeMilliseconds;
- public Grid showGridForVisual;
- public PowerFlowProblem problem;
- public SolverResult result;
- public void clearCache() {
- synchronized (lock) {
- lastSolvedGrids.clear();
- }
- }
- public boolean isSolving() {
- synchronized (lock) {
- return solverJob != null && solverJob.isAlive();
- }
- }
- public void stopSolver() {
- synchronized (lock) {
- if (solverJob != null) {
- try {
- solverJob.interrupt();
- // wait till old solver job has finished or is interrupted
- solverJob.join(100);
- } catch (InterruptedException ignored) {
- }
- solverJob = null;
- }
- }
- }
- }
|