solve_group
Module Contents
Classes
Solve the AIC linear system to obtain the vortex ring circulations. |
Attributes
- class solve_group.SolveMatrix(**kwargs)
Bases:
csdl.ModelSolve the AIC linear system to obtain the vortex ring circulations. A gamma_b + b + M gamma_w = 0
- A size: (A_row, A_col)
A_row = sum((nx[i] - 1) * (ny[i] - 1)) A_col = sum((nx[i] - 1) * (ny[i] - 1))
gamma_b size: sum((nx[i] - 1) * (ny[i] - 1)) b size: sum((nx[i] - 1) * (ny[i] - 1)) M size:
M_row = sum((nx[i] - 1) * (ny[i] - 1)) M_col = sum((n_wake_pts_chord - 1) * (ny[i] - 1))
gamma_w size: sum((n_wake_pts_chord - 1) * (ny[i] - 1)) Parameters ———- mtx[system_size, system_size] : numpy array
Final fully assembled AIC matrix that is used to solve for the circulations.
- rhs[system_size]numpy array
Right-hand side of the AIC linear system, constructed from the freestream velocities and panel normals.
Returns
- circulations[system_size]numpy array
The vortex ring circulations obtained by solving the AIC linear system.
- define()
User defined method to define runtime behavior. Note: the user never _calls_ this method. Only the Simulator class constructor calls this method.
Example
- def define(self):
self.create_input(‘x’) m = 5 b = 3 y = m*x + b self.register_output(‘y’, y)
# compile using Simulator imported from back end… sim = Simulator(Example()) sim[‘x’] = -3/5 sim.run() print(sim[‘y’]) # expect 0 ```
- initialize()
User defined method to declare parameter values. Parameters are compile time constants (neither inputs nor outputs to the model) and cannot be updated at runtime. Parameters are intended to make a Model subclass definition generic, and therefore reusable. The example below shows how a Model subclass definition uses parameters and how the user can set parameters when constructing the example Model subclass.
Example
- def initialize(self):
self.parameters.declare(‘num_times’, types=int) self.parameters.declare(‘step_size’, types=float) self.parameters.declare(‘surface’, types=dict)
- def define(self):
num_times = self.parameters[‘num_times’] step_size = self.parameters[‘step_size’] surface = self.parameters[‘surface’] name = surface[‘name’] # str symmetry = surface[‘symmetry’] # bool mesh = surface[‘mesh’] # numpy array
# define runtime behavior…
- surface = {
‘name’: ‘wing’, ‘symmetry’: False, ‘mesh’: mesh,
}
# compile using Simulator imported from back end… sim = Simulator(
- Example(
num_times=100, step_size=0.1, surface=surface,
),
)
- solve_group.sim