forked from Ottermatics/ottermaticslib
-
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release To v0.9.0 #1
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
>added setup script outline #TODO >updated documentation
…nused field_inputs >structure now has a flag when items solved, that prevents erronius output when not solved >moved structural routines out of the conventional solver.evaluate path
>internal & system references are no longer persistently cached. >SolverMixin.run will recache the system_references in addition to being lazily cached. >Test Cases for basic component cost accounting working with prevention for reference loops >subclasses compiled via `cls_compile()` which targets `subcls_compile`. `pre_compile` is top class only on `attrs.define()` aka `otterize`
>groups parent costs recursively through slot with assigned economics. >possibility of levelized_cost with output calculation >tests passing >need cost categorization,dict_input,and cost terms!
>this is tough to get working with the current composition. >add a `cost_property` to be accounted for as a both a system property and by the economics & cost_mixins
>apply terms & categories to costs >costs tally into a lifecycle in economics >summarizes costs thorugh a lifecycle
>tabulation utility functions to split dataframe into constants dict and variants DF >added documentation to costs module
Added Economics Layer | v0.9.1 draft
>parents are assigned at the slot level and will warn if they already have an existing parent, then duplicate the item and replace the parent >make cached_system_property work with cls call >slots default for cost models >component.update_internal() by default >system parent as well >split dataframe by groups and constants builtin to TabulationMixin >adjust tests to reflect changes
>post_update_internal + post_update
>warn when assigning a cost to slot that is not cost model >internal component is nolonger propoerty but a recacheable call >defaults for subclasses in `default_costs` recursively getting classes >common values between economics and combine_cost of CostModel
>env vars dont repalce in secret call if they have dontoverride on them >logging resets!
> can set components via nested reference setting > system must then reset each time to ensure appropriate settings maintained. > can use eval_kw or sys_kw in run() to set parameters across all Comp.update (uses eval_kw) System.evaluate uses (sys_kw) >allow wide CompIter cost models >default name is none >solver slot checking type recursively via referenecs to slot accepted clases or component type refs >DataFrameMixin handles splitting dataframes for system and analysis >update default costs >structure is now a cost model >Need to get costmodel to report internal beams of structure >remove numeric validator
>dont replace system_properties if attr in herited >lower log levels for properties >add update_internal for solver mixin that allows for optional system update() / post_update() >Add test for costs with explainable elements
>add force_solve feature to extend table
>upgrade pynite version
>training PredictionMixin added to store different models internally >automatic retraining funcitons to target error
>setattrs in dict >limit training to half of data by default >convert to section native stress analysis >need to remove implicit estimation vs calculate code in beams >added structural load solver till fail_frac = target >lower case force names to match section properties >section properties upgrade >structure prediction logic >use section fail_frac criteria that updates based on current error rate >refactor stress report lookup
>relatively fast and accurate for beams >structures predictions untested
>need to work on data inline (problem specific) >use root solver as first guess >wider oob check by default
>rework attrs hash and overrode in some scenerios >allow running again if kwargs provided to system >added a full scope data train option >use bisect to solve since its useful for changing failing case >pdf figure save with options to close and open
>unified some features of properties
>removed any trace of ottermatics/lib >dynamics module refactored. >ATTR_BASE cls & AttributeInstance for specalized API style. >ATTR_BASE abstracted with define, and make_attribute with instance and define input validators. configure_for_system(name,system) provides customizable class based attribute setting.
- deep underlying problem with components that change their references on the fly - the most complete solution would be to do all parsing in the problem, taking many interences out of the systems/components - however we are currently just always refreshing if not a transient which isn't terrible, and is more cautious. - no refresh in transient, however 16s > 10s performance threshold for our example problem. Where cut extra?
ignore logs
- canidate for engforge release - need to scale testing over system scopes to with real world cases - removed time as a property from dynamics and thus all components / systems - solver / problem / dyanmics should be reliable - future work: 1. improve general performance & update accuracy by moving all introspection features from instance based caching to session base caching, on property change (on_setattr), and in session.Xnew. Use session.change(key,obj) for components to fix references. 2. ensure subcomponent lambdas recieve correct component passed 3. subproblems - if you wanted to run a transient and optimize analysis of the results you'd need separate contexts systems for th e optimizing. I think dynamically subclassing contexts makes sense given our class-based-caching strategy. 4. solidify context variable strategy. Strict testing here #TODO 5. smarter ref updates [nested comp-iter, economics] with a class based update_refs callback to allow advanced customization and standardize the existing approaches for comp-iter ect. This goes well with a dependency graph of attributes / properties.
- fixed nonlinear dynamic component bug with old state/input names - default nonlinear update on create_dynamic_matricies - more robust solver defaults - no comp error locate fix - added test_slider_crank
- dynamic components are integrated to steady state analysis using equalities - added warning when more equalities than variables, unify rate inequalities as a sum to zero in this case #TODO: - `time,var` combo added by default for time - integration solver selection - time specified in number of tests to indicate inclusion in steady state analysis - problem_eq/ineq/opt should be the interface to use - added `enter_refresh` option to allow for refreshing of the steady state analysis, now default on .solver() calls in eval() and run() - changed `save_data_on_exit` to `save_on_exit`, typing yo
- allow filters on dynamic vars, removed bad code in filters - signals assigned `signals` combo and also `default` - added `lim` to solver variable combos - minor formating & name changes
… changed, most efficient in problem __enter__ - issues achieving objectives as desired, normilization & basinhoping/search algorithm would be useful to learn a guess table
- single level comp passing via deepscoping - more scope passing to consider - more work in useful / example problems - passing problems vs dictionaries now - black formatting
- apply converged logic to problem context - run automatically saves data
- replace master
- fix issue in making plot name as a directory
- add example values - dont use list/dict/tuple in dataframe
- examples / tutorials / tests - API auto summary - move tests out of engforge module
Create FUNDING.yml
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
-Added documentation strucutre
-documentaiton CI workflow
-Testing Check Workflow on PR and push
-move tests
-pullin changes from ottermaticslib