Source code for ard.viz.plot_layout
import numpy as np
import matplotlib.pyplot as plt
import openmdao.api as om
[docs]
class OutputLayout(om.ExplicitComponent):
[docs]
def initialize(self):
self.options.declare("modeling_options")
[docs]
def setup(self):
# load modeling options
modeling_options = self.modeling_options = self.options["modeling_options"]
self.N_turbines = modeling_options["farm"]["N_turbines"]
# add inputs
self.add_input(
"x_turbines",
np.zeros((self.N_turbines,)),
units="m",
desc="turbine location in x-direction",
)
self.add_input(
"y_turbines",
np.zeros((self.N_turbines,)),
units="m",
desc="turbine location in y-direction",
)
[docs]
def compute(self, inputs, outputs):
fig, ax = plt.subplots()
ax.scatter(inputs["x_turbines"], inputs["y_turbines"])
for idx, (x, y) in enumerate(zip(inputs["x_turbines"], inputs["y_turbines"])):
ax.text(x, y, str(idx), ha="right", va="bottom")
ax.axis("square")
# plt.show()