Pymead

Latest version: v2.0.0b12

Safety actively analyzes 688724 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 7

2.0.0beta.12

New features
- New option in MPLOT interface to export MSES field data and airfoil geometry to either/both a Tecplot (`.dat`) file or Paraview XML (`.vtp` and `.vts`) ASCII files
- Added the ability to modify only one side of a Bézier curve joint when applying a radius of curvature constraint. This is useful when one of the two curves must remain fixed. In this case, the default value used for the radius of curvature in the GUI when applying an `ROCConstraint` is simply the value of the radius of curvature at the endpoint of the curve being fixed rather than the average radius of curvature value at the endpoints of both curves. Instructions for how to apply the constraint this way appear in the status bar (lower left-hand part of the GUI)
- Added normalization options to `pymead.post.mses_field.generate_field_matplotlib`
- Added an experimental rational Bézier curve class to the API (see the `pymead.core.rbezier` module)
- Added an experimental B-spline class to the API (see the `pymead.core.bspline` module)
- Added a hodograph method to the Bézier class
- Added an experimental NACA 4-series airfoil feature to the API (see the `pymead.core.naca4` module)
- Baseline and optimized airfoil system from each generation are now saved to `.jmea` files during optimization runs
- Added an experimental Wagner function curve class to the API (see the `pymead.core.wagner` module)
- Added option to skip geometric constraint evaluation on a `Chromosome` when post-processing an optimization
- Added multipoint tag option for field/grid/grid statistics files
- Added the keyword argument `"direct_user_request"` to `Param.set_value` that determines whether point parameter values should be set directly or if `Point.request_move` should be called instead
- Added Ferguson's curves to both the API (see the `pymead.core.ferguson` module) and the GUI
- Added "Verify Constraints" feature to the "Dev" toolbar item in the GUI. This allows users to ensure that their system of constraints is working properly. Especially useful for complex airfoil systems
- Added several example airfoil systems to the GUI
- Added a feature where fan pressure ratio can be used as a design variable in optimizations
- Added a "File already exists. Overwrite?" dialog that executes during `GUI.save_as_geo_col`
- Hovering is now ignored for all objects when a point is being dragged
- Added a relative-airfoil point feature. This allows points to move with affine transformations (translation, rotation, etc.) of the airfoil. This option can be toggled from the parameter tree or the context menu of "Modify Geometry" in the airfoil canvas
- Keyboard tracking is now set to false for spin boxes to prevent updates from happening until typing is finished
- Added optimization geometric constraint visualization for maximum thickness, minimum radius, thickness distribution, internal geometry, and minimum area in the "Constraints" tab of the optimization setup dialog
- Added a CPU/RAM usage visualization tab that automatically runs during optimization
- Changed the default function tolerance for termination from `0.0025` (as suggested by `pymoo` for multi-point optimizations) to `1e-6` (as suggested by `pymoo` for single-point optimization). The best value to use depends on the objective function. For example, a smaller value should probably be used if drag coefficient is the objective function since $C_d$ usually takes on a value much less than 1.

Bug fixes
- Fixed bug where deleting a point would not delete its associated `x` and `y` parameters
- Fixed bug where a point could not be removed after creating `x` or `y` parameters/design variables
- Fixed bug where deleting angle constraints in specific sequences would not properly set a new constraint cluster root and would not properly re-orient arrows
- Fixed bug where `ClusterAngle` parameters would sometimes not get automatically removed when deleting some constraints in specific sequences
- An error message now appears in the GUI when a user tries to promote a Point `x` or `y` parameter that has constraints and is not a root of a constraint cluster
- An error message now appears in the GUI when a user tries to add a constraint across points that have promoted `x` or `y`-values
- Fixed bug where progress bar would not reset after MPOLAR failure
- An error message now appears in the GUI when MPOLAR fails to converge
- Fixed broken URL path to `pymead` user guide location in help browser window
- Fixed bug where `ValueSpin` could be negative even if value was non-negative
- Fixed bug where bounds-normalized point values were treated as absolute
- Fixed bug where loading in an optimized airfoil system and running the same MSES settings gave a different result than the optimum outcome
- Added zero curvature handling for proper radius of curvature constraint verification
- Fixed a bug where optimized airfoil design variable vectors were not properly decoded in the GUI
- Fixed bug where symmetry constraints would not update properly from design variable change
- Fixed bug where angle verification would fail incorrectly
- Fixed objective and constraint bugs in optimization
- Fixed bug in `GeometryCollection.assign_design_variable_values`
- Created GUI error message instead of early terminating for plotting Mach contours, etc. with MSES analysis if `MuPDF` or `ps2pdf` were not found on the system path
- A GUI error is now thrown if an airfoil being analyzed in XFOIL has more than 495 coordinates (a hard-coded limit in XFOIL)
- Fixed no GUI error being thrown when trying to visualize downsampling on an empty/non-existent MEA
- Fixed bug in internal geometry visualization
- Fixed bug in `Airfoil.contains_line_string`
- Added a GUI error message for when MPOLAR fails at first point
- Fixed a bug in MPOLAR runs from the GUI
- Fixed a bug in XFOIL multipoint optimization
- Fixed a bug in airfoil statistics
- Fixed bug where an optimization pool would not always properly terminate, especially with heavy CPU and/or RAM usage. See `pymead.utils.pymead_mp.pool_terminate_multi_tiered`
- Fixed bug in `Airfoil.check_contains_points`
- Fixed bug where `n_eval` could return `None` after an optimization

Aesthetics
- Made sampling preview adhere to the global theme
- Updated `PymeadLabeledColorSelector` to reflect the global theme
- Updated suggested width and height values for many dialogs
- Made `PymeadDialog` subclass `FramelessDialog` instead of `QDialog` so that the dialog windows have the same unified style as the GUI title bar

Unit testing
- Added additional GUI unit tests, including testing of the XFOIL analysis, MSES analysis, match airfoil, and help browser features

2.0.0beta.11

New features
- Added polylines and reference geometry to show/hide menu
- Made constraint items hoverable and clickable
- Reduced `HoverableCurve` mouse width
- Added interactive text item for distance and angle constraints (changing the text value changes the corresponding parameter value)
- Added the ability to dynamically modify distance and relative angle constraint visual element placement in the canvas
- Made airfoil dialog non-blocking to allow point hover
- Added clear/export data options for `AnalysisGraph`
- Added the ability to change the number of evaluation points on each Bézier curve from the GUI. This feature is useful when the number of points evaluated on an airfoil exceeds the hard-coded limits in XFOIL or MSES

Bug fixes
- Fixed typos in MSET option labels
- Added GUI error messages for `load_point`, airfoil generation
- Fixed bug where multiprocessing pool would not properly close during optimization
- Fixed bug where running an optimization including a `WebAirfoil` would produce `ConnectionError`s due to excess web requests by caching the airfoil coordinates in the `GeometryCollection` directly
- Fixed bug where trying to add an airfoil when no points were present failed to throw a GUI error
- Eliminated default `pyqtgraph` context menu from all analysis and optimization graphs

Aesthetics
- Added unified title bar to dock widgets
- Fixed point hover text color not matching `"main-color"`

Unit tests
- Added unit test for loading points

2.0.0beta.10

New features
- Added the ability to create Reference Polylines from the GUI
- Added ReferencePolylineButton to the parameter tree which allows editing of ReferencePolyline name and color from the GUI

Features removed
- Removed `plot_geometry` and `plot_airfoil_from_airfoiltools` in favor of the new reference polyline feature

Bug fixes
- Fixed bug where show/hide object changes would not apply when new airfoil system was loaded in

2.0.0beta.9

New features
- Added the ability to match an airfoil from a data file in the GUI
- Added a new geometric object type -- "Reference Polyline" -- which can be used to compare a matched airfoil parametrization to an existing airfoil shape directly on the airfoil canvas
- Added mass flow rate and elementwise performance to `read_forces_from_mses`
- Optimization settings now save to optimization results directory
- Added field scaling factor option to `mses_field.py`
- Added `n_points_per_curve` option in `Airfoil.get_coords_selig_format` that allows evaluation of each curve using a specified number of points

Bug fixes
- Added missing keys in XFOIL settings dictionary (GUI optimization)
- Fixed load dialog opening if no MEA file specified in optimization settings
- Fixed improper behavior of relative angle constraints with `p1.rotation_handle` and `p2.root` both set
- Hover and selection behavior for parametric curves now match point hover and selection behavior
- Fixed bug where airfoils could not be created with trailing edge and upper surface end being the same point reference
- Fixed broken reference in `WebAirfoilDialog.setInputs`
- Fixed area unit not changing on length unit update
- Made topology error dimensional in airfoil matching
- Fixed bug where a design variable and a parameter could share the same name
- Fixed bug where polar analysis would fail to execute after a previous polar analysis in the same directory
- Fixed bug where geometry axis labels would not update when loading in a `GeometryCollection` with different units
- Fixed bug where optimization would try to access `mea.name()` even if `mea` was `None`
- Fixed bug in `pymead_mp.py` where a process terminating in the middle of accessing its name would raise an error instead of continuing
- Fixed bug where MEA file dialog box was read-only by default
- Fixed bug where removing a trailing edge line does not remove the airfoil
- Fixed bug where optimization would take a while to clean up processes after completing a generation
- Fixed broken arrow key movement
- Fixed bug where geometric constraints were not calculated properly during optimization
- Fixed bug in `mses_field.py` when `axs==None`
- Fixed bug where part of the base-level `titleBar` from `QFramelessWindow` was visible and could be interacted with
- Folder link now correctly appears when an MSES analysis fails
- Fixed bug where context menu would not activate on canvas curve select
- Added a key check to `PymeadDialogWidget.setValue` to improve backwards compatibility
- GUI error message now appears when an invalid MSES analysis path is selected

Aesthetics
- Created custom text item to support vertical text in parallel coordinates graph output during optimization

Unit tests
- Added numerous unit tests for item selection/hover
- Added unit tests related to optimization

2.0.0beta.8

New features

- Windows Aero Snap (dragging GUI to edges of screen creates a pop-up with various quarter-screen/half-screen/full-screen options) and double-clicking title-bar to toggle full-screen now added using a custom implementation of the `PyQt6-Frameless-Window` library. The Linux tarball is not included in this release since the changes apply only to Windows.

2.0.0beta.7

New features

- Migrated the airfoil matching GUI method to a separate thread
- Added intermediate airfoil comparisons and function value updates to the airfoil matching feature

Page 1 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.