Skip to content
Snippets Groups Projects
Commit a8eff8c3 authored by Mads M. Pedersen's avatar Mads M. Pedersen
Browse files

Optional(default) plot line from initial to current position

parent 8d6edf0f
No related branches found
No related tags found
1 merge request!94Handle disabled mpi
...@@ -23,10 +23,11 @@ def mypause(interval): ...@@ -23,10 +23,11 @@ def mypause(interval):
class PlotComp(ExplicitComponent): class PlotComp(ExplicitComponent):
colors = ['b', 'r', 'm', 'c', 'g', 'y', 'orange', 'indigo', 'grey'] * 100 colors = ['b', 'r', 'm', 'c', 'g', 'y', 'orange', 'indigo', 'grey'] * 100
def __init__(self, memory=10, delay=0.001): def __init__(self, memory=10, delay=0.001, plot_initial=True):
ExplicitComponent.__init__(self) ExplicitComponent.__init__(self)
self.memory = memory self.memory = memory
self.delay = delay self.delay = delay
self.plot_initial = plot_initial
self.history = [] self.history = []
self.counter = 0 self.counter = 0
...@@ -55,6 +56,8 @@ class PlotComp(ExplicitComponent): ...@@ -55,6 +56,8 @@ class PlotComp(ExplicitComponent):
def compute(self, inputs, outputs): def compute(self, inputs, outputs):
x = inputs['turbineX'] x = inputs['turbineX']
y = inputs['turbineY'] y = inputs['turbineY']
if not hasattr(self, "initial"):
self.initial = np.array([x, y]).T
cost = inputs['cost'] cost = inputs['cost']
self.history = [(x.copy(), y.copy())] + self.history[:self.memory] self.history = [(x.copy(), y.copy())] + self.history[:self.memory]
...@@ -64,7 +67,9 @@ class PlotComp(ExplicitComponent): ...@@ -64,7 +67,9 @@ class PlotComp(ExplicitComponent):
history_arr = np.array(self.history) history_arr = np.array(self.history)
for i, c, x_, y_ in zip(range(len(x)), self.colors, x, y): for i, c, x_, y_ in zip(range(len(x)), self.colors, x, y):
plt.plot(history_arr[:, 0, i], history_arr[:, 1, i], '.-', color=c, lw=1) if self.plot_initial:
plt.plot([self.initial[i, 0], x_], [self.initial[i, 1], y_], '-', color=c, lw=1)
plt.plot(history_arr[:, 0, i], history_arr[:, 1, i], '.--', color=c, lw=1)
plt.plot(x_, y_, 'o', color=c, ms=5) plt.plot(x_, y_, 'o', color=c, ms=5)
plt.plot(x_, y_, 'x' + 'k', ms=4) plt.plot(x_, y_, 'x' + 'k', ms=4)
...@@ -73,11 +78,12 @@ class PlotComp(ExplicitComponent): ...@@ -73,11 +78,12 @@ class PlotComp(ExplicitComponent):
mypause(self.delay) mypause(self.delay)
self.counter += 1 self.counter += 1
class NoPlot(PlotComp): class NoPlot(PlotComp):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
ExplicitComponent.__init__(self) ExplicitComponent.__init__(self)
def show(self): def show(self):
pass pass
...@@ -87,6 +93,5 @@ class NoPlot(PlotComp): ...@@ -87,6 +93,5 @@ class NoPlot(PlotComp):
self.add_input('cost', 0.) self.add_input('cost', 0.)
self.add_input('boundary', np.zeros((self.n_vertices, 2)), units='m') self.add_input('boundary', np.zeros((self.n_vertices, 2)), units='m')
def compute(self, inputs, outputs): def compute(self, inputs, outputs):
pass pass
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment