Skip to content

User expression support [POC] (#789) #841

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

Draft
wants to merge 20 commits into
base: develop
Choose a base branch
from
Draft

Conversation

maciej-flexcompute
Copy link
Collaborator

  • Added examples of a pydantic model using expressions

  • Example units support

  • Migrate to Pydantic V2

  • Added variable support

  • Added units support in variable expressions

  • Added support for constrained types

  • Added tests, add support for unary operations

andrzej-krupka and others added 4 commits April 15, 2025 12:07
* Added examples of a pydantic model using expressions

* Example units support

* Migrate to Pydantic V2

* Added variable support

* Added units support in variable expressions

* Added support for constrained types

* Added tests, add support for unary operations
…al evaluation of builtin solver variables (#858)

* Move Flow360 and Tidy3D-specific logic outside of core blueprint module

* Add support for partial evaluation of solver variables
* Added complete list of usable solver variables

* Add variable capture when creating simulation params

* Serialization improvements

* Fix serialization and deserialization issues

---------

Co-authored-by: Andrzej Krupka <[email protected]>
andrzej-krupka and others added 11 commits May 8, 2025 11:37
* Nested variables are now available for use

* Added expression validation endpoint support

* Extend expressions endpoint to support multiple expressions

* Add ability to use expressions in vector fields

* Added numpy interop capabilities along with subscript operator support

* Apply PR feedback

---------

Co-authored-by: Andrzej Krupka <[email protected]>
* Reorganized solver variables into target namespaces

* Apply PR feedback

* Added ability to convert expressions to C++ syntax (#1009)

Co-authored-by: Andrzej Krupka <[email protected]>

* Update CI yaml

* Fix unit tests after alias changes

* Removed unused __init__.py items

---------

Co-authored-by: Andrzej Krupka <[email protected]>
Co-authored-by: benflexcompute <[email protected]>
…to expression validation service (#1013)

Co-authored-by: Andrzej Krupka <[email protected]>
* Validation service fixes

* Fix aliasing issues, fix numpy interop with dimensioned variables

* Apply PR feedback

* Ready to merge

---------

Co-authored-by: Andrzej Krupka <[email protected]>
Co-authored-by: benflexcompute <[email protected]>
* Validation service fixes

* Fix aliasing issues, fix numpy interop with dimensioned variables

* Apply PR feedback

* Added unit stripping when converting to solver code

* Add a general name preprocessing function instead of unit stripping

* Finalize unit -> solver conversion function

* Add user variable inlining for solver code generation

---------

Co-authored-by: Andrzej Krupka <[email protected]>
Co-authored-by: benflexcompute <[email protected]>
…ressions (#1082)

* Validation service fixes

* Fix aliasing issues, fix numpy interop with dimensioned variables

* Apply PR feedback

* Added unit stripping when converting to solver code

* Add a general name preprocessing function instead of unit stripping

* Finalize unit -> solver conversion function

* Add user variable inlining for solver code generation

* Demonstrating E2E case with expressions

* Fix variable initialization when loading from file

* Removed non-release code

* Fixed unit test

---------

Co-authored-by: Andrzej Krupka <[email protected]>
Co-authored-by: benflexcompute <[email protected]>
* wip

* More fixes

* Another batch of linter fixes

* Another round of linter fixes

* Fixed most unit test, now fixing extra error

* Fixing all the unit tests, pylint etc

* Fix unit test

* Fix unit test

---------

Co-authored-by: Andrzej Krupka <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants