Repository is used to assign tasks through GitHub issues for AIDE work done in FeatureScript.
aide_featurescript's Introduction
aide_featurescript's People
aide_featurescript's Issues
Create FS for CDC
Pipeline v9 Bugged Fitting Sockets
Some of the fittings generated by pipeline (when checking "Custom Parts" and selecting the "Fitting" part studio for fittings and the "Pipe" part studio for piping) will have sockets that intersect each other, e.g. in size 1/2 tees and elbows, creating partial sockets.
Create tests for all FS functions (starting with LFOM)
TEST: Add tests for failing the range checks of Core FS functions
- I have reviewed the test coverage in FeatureScript
Describe the Missing Coverage
Many functions check the range of acceptable values before calculating anything, and throw errors as a result. For example, widthWeirRect(0.0025 * meter^3 / second, 0.0 * meter)
should return throw Value of Height is 0 which is not within range of GZ
. Currently there is no way to test that the correct error occurs.
Expected Behavior
When an error such as throw Value of Height is 0 which is not within range of GZ
occurs the Tester
feature should be able to parse the error message and check that it matches the expected error.
Recommended Fix
I believe this could be accomplished by catching all errors thrown during testing and converting the error message to a string. Then that string would be compared to an expected error string.
Transfer Python Code into Physical Chemistry FS file
Physical Chemistry is a core AguaClara file that is necessary to compute many plant calculations. On GitHub, the python file is named physchem.py.
HDF (CDC)
Create a CDC HDF. Add the functions that calculate the diameter, length, and number of dosing tubes to the CDC HDF.
Switch the relationship so that the Features call & design the Part Studios (start with LFOM)
Refactor HDFs to utilize Core FS
Use Case
Ensure HDFs use Core FS as much as possible (and add functionality which is common between HDFs to Core FS).
Solution
Since we now have fully tested Core FS functions it's best to use them as often as possible. If there's functionality that's commonly used that's not in Core FS we should add it (with tests!) to Core FS.
Alternatives
Have separately maintained versions of functions in different HDFs, but that will likely lead to errors.
floorNearest(target, arr is array) and similar function no longer work with units because target has been changed to require that it be a number. This breaks all code that uses units.
pipe diameter function for pipes with minor and major losses
The pipe diameter function has an error. Check it against the original python code.
Transfer physchem functions
Move all the functions from to
QA: @oliver-leung and @ethan92429
Transfer Python Code into FS Pipe Database file
Pipe Database is a core AguaClara file that contains many essential functions to calculate pipe dimensions. This is necessary to implement the Sed tank and possibly other plant components. In python, the file is named pipes.py.
ENH: Add a feature that calculates head loss based off of instances of the Pipeline feature
Use Case
With such a feature, we would be able to use head loss calculations for pipes to:
- Validate correctness of designs on the fly
- Use head loss calculations for further design calculations in the Part Studio
- Maybe something else?
Solution
This would reasonably be implemented with a feature that takes as input a reference to geometry that was drawn by a Pipeline feature, though it may be difficult to do so based off of just the geometry. We could get around this by having the Pipeline output some variables describing the pipes, though this may clog up the context.
@ethan92429 Is there some simple way to do the geometry-based approach that I'm missing?
Alternatives
Our current paradigm is to run HL calculations in the HDF, though this requires duplication of logic (pipes must be specified in both the DPS and the HDF).
Add flow meter to the LFOM
The flow meter zero point is the bottom of the bottom row of orifices. Create code that takes the design flow rate and turns it into a nice ruler with ticks.
Consider making a dual ruler with flow rate on one side and percent of full flow on the other side.
FS for obstacles
-
calculate size of pipe to use for obstacle
-
calculate if obstacles on both sides of baffle needed
Extend unit map to include flow units
Refactor Pipeline to use the configurable Pipe library
ENH: Add a feature that returns a cut list, based on an instantiated Pipeline feature
Use Case
This would be very useful to supplement a BOM, in determining the minimum length of pipe that is required for to construct a set of cut pipes.
Solution
Similarly to #40, this feature could take in a reference to Pipeline geometry and return a list of available pipes that can be cut down to match the Pipeline design.
Alternatives
Eyeballing it? I'm not too sure what is the existing process for this...
HDF (Floc)
Move the HDF FS from AguaClara to AC
Transfer Sed tanks
ENH: Replace EI Parts Studio with Extended Inputs Functionality
Use Case
Right now the Expert Inputs parts studio is only used in unpacking of overrides string.
Solution
If we moved that functionality to the Inputs feature the EI parts studio can be removed entirely (and Import EI feature in the DPS replaced w/ Inputs).
Alternatives
The current implementation could be maintained as it works, but it's inefficient and harder to debug.
HDF to Onshape Drawing
For the flocculator, create the connection between HDF and Onshape Drawing and verify that it produces designs similar to the Mathcad/AutoCAD designs for 20 and 60 L/s.
implement BF
Implement new 1-5 L/s Filter design
I believe this filter will be contained in a single pipe. Before work starts Monroe and other experts need to solidify design logic which can be implemented in FeatureScript
ENH: Make Test Helper its open-source feature with support from the Onshape forum
Use Case
Test Helpers has a bunch of useful helper functions. We might be able to get support from the Onshape community if we made it open source.
Solution
We could easily move Test Helpers
into its own Document and create an open-source feature. Then we could advertise on the Onshape Forums that we made this feature and would appreciate contributions and feedback.
Alternatives
Continue to maintain Test Helpers
privately within AguaClara Core FS
.
ENH:
Use Case
Improve the functionality of the Tester feature by testing the test functions
Solution
*1. Create a Part studio and instantiate different cases of the Tester feature
2. Perform simple value checks.
3. Perform unit checks-For eg. checking that 5m not equal to 5 cm.
*
Alternatives
This is a part of #35
Develop Concise testing code
test issue
This should be closed
HDF (ET)
Create an ET HDF
ENH: Integrate new Pipeline feature with existing components
Use Case
Components which have already been completed used an old pipeline feature or hand drawn pipelines. These should be replaced with the improved pipeline feature for easier maintainability.
Solution
Change the references to the old Pipeline
feature in components like the sedimentor and flocculator and replace them with references to Ethan's new Pipeline
feature.
Alternatives
If the components are working, they could be left as is. However, as more features get added to the new Pipeline
feature these components would become more difficult to maintain, so it's better to update them all in advance.
kinematic viscosity function error
The kinematic viscosity of 20 degC water should be 1.004e-06 meter ** 2 / second and yet the value calculated in featurescript is about 3 times that value.
Support different countries' pipe databases
We have two enums, one which defines the available ND and their associated OD and one which defines which of the diameters are actually available (called ND_ENUM_IS_USED
). Since different pipes are available in different locations, ND_ENUM_IS_USED
should be defined by the user instead of hardcoded. To accomplish this, a predicate which has a checkbox for each possible pipe in the database should be used, then those boolean values can be assigned to each member of ND_ENUM_IS_USED
Solidify 3-level test plan
The three levels involve:
- A "build function" that references the Part Studio to be instantiated
- The PS that contains the component to be built, as well as the HDF as a feature instantiated in the PS
- A "hydraulic design function" that runs calculations based off of hydraulic inputs and configures the PS's variables
This involves:
- Creating a graphic demonstrating each of the three levels
- Well-commented code for the LFOM
- Intuitive names and definitions for each of the components of this paradigm
- Validating and testing
ENH: Add moles to FS units and implement density gas equation
Use Case
Monroe attempted to add the molar gas constant to units.
Solution
Figure out how to define Moles in FeatureScript and implement the density gas equation with the Molar constant, R
.
Alternatives
We currently don't use gas equations anywhere in AIDE, so this is definitely more of an educational tool instead of a vital feature.
Define expert inputs structure
such as minimum space between a wall and a pipe
FS to calculate drain pipe size
Add FS for calculating diameter of pipe
- given head loss, K, temp, Q, L, roughness
- this is needed for drain pipe in flocculator
- This should be in pc
Solidify validation procedures for FS code
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.