Skip to content

Conversation

@piotrkluba
Copy link
Collaborator

Merging the snappy python interface as well as the newly discussed ModularMeshingWorkflow to the main python branch.

piotrkluba and others added 30 commits July 9, 2025 12:53
* updated translator to list edgeFiles

* does not require point in mesh when specifying bounding box

* cad is fluid gets translated

* cad is fluid added to translator

* deleted edgeFiles

* fixed multiple body regions in one refinement bug

* local retainment of edges

* fixed volume validation error
* Add Project Length To ValidationInfo (#1233)

* Add project_length_unit to validation_info

* Utilize validation_info when parsing multiconstructor model

* Add unit test and fix format

* Address comments

* Address comment again

* Address comments round 3

* feat(): add customize user agent for the request from python client (#1221)

* feat(): add customize user agent for the request from python client

* fix!

* fix!

* Fix formatting

---------

Co-authored-by: BenYuan <ben@flexcompute.com>
Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

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

* User expression support [POC] (#789)

* 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

* Make core blueprint package framework-agnostic, add support for partial 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

* Fix Python 3.9 compatibility

* Added complete list of usable solver variables (#888)

* 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 <akrupka@Andrzejs-MacBook-Pro.local>

* Ensure global scope variables are visible within validation service

* Fix validation ordering bug

* Allow extra fields in variable objects

* Improved error messages (#945)

* Nested expression support + expression validation endpoints (#946)

* 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 <akrupka@Andrzejs-MacBook-Pro.local>

* Reorganized solver variables into target namespaces (#986)

* Reorganized solver variables into target namespaces

* Apply PR feedback

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

Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>

* Update CI yaml

* Fix unit tests after alias changes

* Removed unused __init__.py items

---------

Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>
Co-authored-by: benflexcompute <ben@flexcompute.com>

* Add dependency cycle checking and add non-dimensioned array handling to expression validation service (#1013)

Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>

* Validation service fixes, better error messages (#1030)

* Validation service fixes

* Fix aliasing issues, fix numpy interop with dimensioned variables

* Apply PR feedback

* Ready to merge

---------

Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>
Co-authored-by: benflexcompute <ben@flexcompute.com>

* Added unit handling to solver code converter (#1049)

* 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 <akrupka@Andrzejs-MacBook-Pro.local>
Co-authored-by: benflexcompute <ben@flexcompute.com>

* Expressions fixes, demonstrating E2E capability for user-variable expressions (#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 <akrupka@Andrzejs-MacBook-Pro.local>
Co-authored-by: benflexcompute <ben@flexcompute.com>

* Pylint Fix for `expression` branch (#1083)

* 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 <akrupka@Andrzejs-MacBook-Pro.local>

* Rolled back to python list types, no numpy interop as of now because it is not compatible with solver translation (#1108)

* Rolled back to python list types, no numpy interop as of now because it is not compatible with solver translation

* Format

---------

Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>
Co-authored-by: benflexcompute <ben@flexcompute.com>

* Partial expression evaluation, example of a builtin function (#1115)

* Cross in Pyhton mode works

* WIP now needing for refactor to enable function on-demand import since current structure causes circular import

* Some comments

* Got symbolic evaluation to work but very HACKY

* Refactored expressions module structure to be self-contained (still contains cyclic imports but only runtime, never at init...)

* Partial evaluation before solver code translation

* More fixes, simplify deserializer logic

* Format

* Fixed unit test as many as possible, only 1 left

* Fixing most of the pylint issues

* Fixed allow_inf_nan when evaluating expressions with solver variables

* eagerly evaluation and also taking advantage of unyt pacakge

* Small fixes

* Fix invalid list initialization syntax in the C++ code generator

* Added back the as_vector() implementation

* Renamed raise_error

* Remove extra evaluation call in cross, reduce unnecessary parentheses

* some more small changes

---------

Co-authored-by: benflexcompute <ben@flexcompute.com>
Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>

* Fixed merging

* Fixed V1 tests

* [FL-729] [FLPY-7] Dimensioned Volume Output (#1012)

* Added unit test, now pending fixing lint and todos

* Ready for review

* Fix for windows-1

* Format

* Another attempt

* Thank you Windows

* should work now

* Enabled all output types to use UserVariable (#1148)

* Added unit test for project_variables and also simplified the translation unit test (#1151)

* Added unit test for project_variables and also simplified the translation unit test

* Removed print

* Fix windows test

* Added util function to get the unit from expression (#1157)

* Added util function to get the unit from expression

* removed print

* Added catch for input_params is None

* fix lint

* Disables vector arithmetics for variables (#1158)

* List all solver variables (#1150)

* Initial implementation

* More variable finished

* Fix unit test

* Fix pylint

* Fix the issue that solver name is not used

* Move prepending code to translator

* Fix prepending code

* Fix deserialize issue that output units is not loaded

* self review of prepending code

* typo fix

* Address comments

* fix grad pressure's prepending code

* Added support for solver variable in output_fields and also fixed a bug when translating Mach (#1160)

---------

Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

* Separate prepending code to declaration and computation parts (#1165)

* Initial implementation

* More variable finished

* Fix unit test

* Fix pylint

* Fix the issue that solver name is not used

* Move prepending code to translator

* Fix prepending code

* Fix deserialize issue that output units is not loaded

* self review of prepending code

* typo fix

* Address comments

* fix grad pressure's prepending code

* Added support for solver variable in output_fields and also fixed a bug when translating Mach (#1160)

* Replace wall shear stress with its magnitude, add unit test to whitelisted_callables

* Fix coordinate, remove mu

* Fix the scaling of turbulence solution

* Fix the unit conversion for a list of float

* Add missing vorticty magnitude

* remove declaration when user-specified name is the same as the solver_name

* Add velocity magnitude

* Address comments

* formatting

---------

Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

* UserVariable as Token and value from context (#1161)

* Implementation done, now checking pylint

* Now writing the overwrite checker

* Ready for self review

* Enabled timestepping->step size to be expression too (#1166)

* Enabled timestepping->step size to be expression too

* Bumped version

* Handles NaN desearilization (#1168)

* Added proper base for surface probe output

* Ben y/expression front end feedback (#1169)

* Updated the project variables schema

* rename gradient

* Added translator for ValurOrExpression object (#1175)

* Added postProcessing flag setter (#1176)

* Added postProcessing flag setter

* Fixed unit test

* Fixed v1 unit test

* Decouple solver variable's solver name with user variable name (#1170)

* Initial implementation

* Fix unit test

* Expression validation bundle (#1181)

* 1. Single UDF has single dimensionality

* Change in_unit to in_units

* Change in_unit to in_units

Signed-off-by: BenYuan <ben@flexcompute.com>

* Fixed unit test

* Fixed all unit tests

* Trying to fix windows

* Removed unnecessary prints

* Added legacy checker

* added more test

* Disabled degF and degC for the Expression

---------

Signed-off-by: BenYuan <ben@flexcompute.com>

* Fix heatflux related solver variables (#1186)

* Fix heat flux related solverVariables

* Remove unnecessary debug script

* [Registry Rescale] Use solutionRescale in the prepending code (#1184)

* Fixed unary op not allowed by expression (#1187)

* Fix temperature output with user variable (#1194)

* Fix the prepending code for temperature

* Add unit test

* Remove debug script

* [TODOs pending] More Math Functions for `Expression` (#1185)

* Added math function cross for 2 component

* Added dot function

* Added sqrt

* removed unnecessary callable assingment

* added translator unit test

* [Angran] More operation added, needs double check

* Added some unit tests, removed pow() since it is duplicate

---------

Co-authored-by: Angran Li <angran@flexcompute.com>

* Enable more fields to use value or expression (#1199)

* Added all unit tests for ValueOrExpression fields

* Added configure API to limit acceptance of the runtime expressions

* Removed print

* removed print, added extra=allow

* Add more unit tests and validations for math operations (#1196)

* Add validation and unit tests for multiple math operation

* Handle mixture of unyt_quantity and expression/variable when using min/max function, add unit test for edge cases

* Add more edge cases test

* Add more edge cases and replace all dimensionality to dimensions

* Add the remaining unit test and clean up todo list

* Removed print

* Address comments

---------

Co-authored-by: BenYuan <ben@flexcompute.com>
Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

* Added dependency graph and variable pre-sorting (#1202)

* added dependency graph, now need to add the topo_sort

* added dependency graph, now need to add the topo_sort

* Fix lint and format

* Added unit test and added the sort to init variable space. What about the validate expresion though???...

* Fixed a bug in deserializer where syntax errors are not exposed (#1200)

* Fixed a bug in deserializer where syntax errors are not exposed

* Fix unit test

* Fix lint

* Fix unit test

* Fixed validaiton service for not cleanning the cache and also that no dependency graph built for sorign (#1204)

* Deploy again (#1208)

* Add expression support for Isosurface (#1201)

* Add validation and unit tests for multiple math operation

* Handle mixture of unyt_quantity and expression/variable when using min/max function, add unit test for edge cases

* Add more edge cases test

* Add more edge cases and replace all dimensionality to dimensions

* Add the remaining unit test and clean up todo list

* Initial implementation

* Validation fix

* Add validation for using empty list in UserVariable

* Add unit for for isosurface validation

* Add validation for iso_value length

* Fix translator for IsosurfaceOutput

* Fix unit test

* Fix unit test

* Use new unit system for non-dimensionalization of random units in iso_value

* Fix incorrect isovalue for dimensioned output

* Update unit test to use a irregular units as iso value

* Changed isoValue schema (#1207)

* Exclude project_variables from nondimensionalization

* Specify exclude in the individual class

* some minor patching

* Add unit to validate iso value's translation

---------

Co-authored-by: BenYuan <ben@flexcompute.com>
Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

* Removed validate_expression() (#1212)

* Using discriminator to differencetiatye Value VS Expresison (#1215)

* Added function to print all the output units for all post processing variables (#1213)

* Added funciton to print all the output units for all post processing variables

* some comments

* Add validation to check the usage of surface specific solution variable in non-surface output fields (#1216)

* Add validation to check the usage of surface specific solution variable in non-surface output fields

* Address comments

* Fix unit test

* Added check for dependent features (#1218)

* Now hand over to helper

* Added check for dependent features

* Removed print

* Added missing check

* Update SurfaceIntegralOutput for UserVariable (#1214)

* rename node_normals to node_area_vector and add node_unit_normal

* Update surfaceIntegral and UDF validation

* Automatically multiply area to the surfaceIntegralOutput

* Update tests/simulation/params/test_validators_params.py

Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

* Create a new user variable for surface integral

* Address comments

* Address comments

---------

Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

* More IsosurfaceOutput changes for Expression (#1220)

* Initial implementation

* fix get_output_units and corresponding unit test

* Add unit test

* Improve unit test

* address comments

* Enable usage of constant value as output variables. (#1219)

* Enable usage of constant value as output variables.

* Remove print

* Added pi (#1222)

* Added pi

* Removed print

* Renamed project_variables to variable_context (#1224)

* Temporary disable unit system when validating ValueOrExpression (#1225)

* Fixed the iso_value field validator dependency resulting in wrong error (#1230)

* Fixed the iso_value field validator dependency resulting in wrong error

* Revert accidental comment

* formatter

* [Expression] Add functions to get/remove/show user variables (#1226)

* Reraise a different redeclaration error when loading simulation json

* Fix error during translating isosurface

* Add functions to get/remove/show user variables

* Address comments

* Changed texting

* Fix lint

---------

Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
Co-authored-by: BenYuan <ben@flexcompute.com>

* Skip feature-dependent validation for expressions that are not used (#1223)

* Skip feature-dependent validaiton for expressions that are not used

* Added recursive finding of dependendt variables

* lint

* [SCFD-5773] Fix issue where semicolumn breaks AST (#1231)

* replace validated_by with boolean option for clear context (#1232)

* Reviewed, improved error message and loc

* Some polishing

* [SCFD-5806] Add solver side internal variables to the block lsit

* Convert number user variables to expression

* Fix lint

* Removed evaluated value/units

* Fix lint and unit test

---------

Signed-off-by: BenYuan <ben@flexcompute.com>
Co-authored-by: Andrzej Krupka <156919532+andrzej-krupka@users.noreply.github.com>
Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>
Co-authored-by: benflexcompute <ben@flexcompute.com>
Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
Co-authored-by: Angran <angran@flexcompute.com>

* Add 'main' branch references

* Update auto hotfix workflow (#1241)

* Add updater for from_mach_reynolds (#1252)

* [25.5] Add prefix option to read_all_v1_BETDisks function (#1253) (#1255)

* initial implementation

* Add index offset option

* Address comment

Co-authored-by: Angran <angran@flexcompute.com>

* Enabled power operation on vector variables (#1257)

* Enabled power operation on variables

* Fix CI

---------

Co-authored-by: Angran <angran@flexcompute.com>

* Remove ceil and floor functions (#1259)

* Added bounding box info in support of inhouse symmetric (#1258)

* Added bounding box info

* Ready for testing, proper validaiton pending

* deploy now, test pending

* Fixed unit tests

* Ready for testing

* fixed unit test

* Ready

* Bump version due to addition of the global_bounding_box

* Misc expression fixes (#1264)

* Added support for front end JSON support when expression is empty/None

* Regulated the unit symbols that can be used in the expression

* Fixed unit test

* Resource reuse logic increase robustness (#1267)

* WIP

* Now fixing UDD

* Fixed udd ordering

* Need to know how the density works

* Ready

* READY

* Remove logging to file by default (#1269)

* Remove file logger

* Try again

* try again

---------

Co-authored-by: BenYuan <ben@flexcompute.com>

* [FXC-1886] Fix incorrect dimensional output when liquid op is used (#1265)

* Fix unit conversion bug for liquid

* 1. Use liquid flow360 unit system for UDF conversion when liquid op is used
2. Fix unit test

* Fix compare_values and replace all incorrect checks

* Address comments

* Also fix other conversion factor

---------

Co-authored-by: BenYuan <ben@flexcompute.com>

* Move get_flow360_unit_system_liquid out for manifest usage (#1273)

* [SCFD-5640] Disable the same surface being used in more than one Surface/TimeaverageSurfaceOutput (#1270)

* [SCFD-5825] Remove 'p' and 'rho' from iso field (#1275)

* Fix updater of from_mach_reynolds (#1276)

* Fix updater of from_mach_reynolds

* revert minor change

* removed dev from example (#1272)

Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

* Added legacy tagging for previous UDFs (#1281)

Co-authored-by: Angran Li <angran@flexcompute.com>

* fix(): misuse of .sort() which return None (#1282)

* fix(): misuse of .sort() which return None

* address comments

* [Expression] Removed postProcessing key in the context and also added support for description (#1280)

* [Expression] Removed postProcessing key in the context and also added support for description

* isort

---------

Co-authored-by: Angran <angran@flexcompute.com>

* [SCFD-5945] Fix location of the expression validation error and also fix issues caused by converting the value variable to expression. (#1283)

* [SCFD-5945] Corrected the location for expression error

* proposed fix

* Rebase anyway

---------

Co-authored-by: Angran Li <angran@flexcompute.com>

* [SCFD-5015] Projected frontal area support (#1262)

* [SCFD-5015] Projected frontal area support

* [SCFD-5943] Added translator support for the auto area

* fix linter

* Fix Deserialize function when handling None description (#1286)

* Update to_file implementatino to exclude None when dumpping json

* Make sure deserialize can handle None description situation

* Add fixed to_yaml

* adopted the proposed flex credit example (#1284)

* adoptes the proposed flex credit example

* black

* removed leading spaces

* separate get_project_records out (#1287)

* Remedy on the GhostCircularPlane existence check (#1288)

* Removed the fall back of using Flow360Params (#1289)

* Removed the fall back of using Flow360Params

* Fix lint

* Revert "Removed the fall back of using Flow360Params (#1289)" (#1290)

This reverts commit 211ef14.

* Remove get expanded entity list during preprocessing params for translator (#1292)

* Remove expanded enttiy list

* fix pylint

* Added v1 fallback original error

* Bump version

* [Hotfix Main]: Added version command and better project loading error (#1296)

* Added version command and better project loading error (#1295)

* Added version command and better project loading error

* fixed unit tests

* resolved conflict

---------

Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
Co-authored-by: BenYuan <ben@flexcompute.com>

* Load the storage region from the backend response (#1299)

* load the storage region from the backend response

* Bump version

* Added updater for entities being in multiple outputs (#1293)

* WIP

* Added updater for entities being in multiple outputs

* Deduplicate first before removing surfaces

---------

Co-authored-by: Angran <angran@flexcompute.com>

* bump to 25.5.2b4 (#1300)

* Removed aws_region in the model (#1302)

* Example python file for post-processing time-averaged isosurfaces (#1291)

* example file for time-averaged isosurfaces

* added post-processing

* added post-processing

* added some text

* changed temp folder to local folder

* black validation

* removed paths for download

* removed lines

* removed lines

* removed lines

* Some improvement on the `flow360 version` command (#1305)

* Some improvement

* formatting

* Bump version for 25.6 official release (#1306)

* [FXC-2051] Removed unsteady initial_blade_direction check and also removed comments in v1 json (#1310)

* Bump to 25.6.3 (#1313)

* Fix the hotfix yaml not being able to handle the anti column (#1311)

* [FXC-2051] Removed unsteady initial_blade_direction check and also removed comments in v1 json

* Fix the hotfix yaml not being able to handle the

* Fix auto hotfix

* Speed up the loading of the entities by using set and also reduce complexity with supplied known hash set (#1316) (#1320)

* Speed up the loading of the entities by using set and also reduce complecity with supplied known hash set

* Remove description

* Ready

* Fix lint

* Added a redunet test.. (#1318) (#1323)

* [FXC-1974] Dry run for run_case() (#1334)

* [FXC-1974] Dry run for run_case()

Fix linting

[FXC-2051] Removed unsteady initial_blade_direction check and also removed comments in v1 json (#1310) (#1312)

* Added for sm and vm generations too

* revert change on examples

* [FXC-2006] Disable boundary completeness and deletion validation (#1330)

* [FSC-2006] Disable boundary completness and deletion validation

* Fix unit test

* [FXC-2059] Added planar_face_tolerance translator for legacy mesher and also unified the validation (#1329)

* [FSC-2006] Disable boundary completness and deletion validation

* Fix unit test

* [FXC-2059] Added planar_face_tolerance translator for legacy mesher and also unified the validaiton

* Bumped to 25.6.4 (#1338)

* Updated the description of the planar_face_tolerance (#1342)

* fix(): `planar_face_tolerance` might be missing and causing validation to fail (#1344)

* fix(): planar_face_tolerance might be missing and causing validaiton to fail

* ensure valid param

* Fixed test

* feat: add rename method to v2 assets (#1333) + feat: add tags filtering to Project.get_case_ids, Project.get_project_ids, and metadata (#1346)

* feat: Migrate Folder class to v2 API (#1317)

* [FXC-2051] Removed unsteady initial_blade_direction check and also removed comments in v1 json (#1310) (#1312)

* bug(): Removed duplicate pressure output when pressure is specified (#1309)

* feat: migrate Folder class to v2 API endpoints

* remove unused v1 import, run styling + lint checks

* rerun isort + lint

* disable pylint duplicate code

* fix example files

* delete test_folder_tree.py

* delete examples, remove comments, update pydantic

* fix: run linting + formatting

---------

Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

* feat: Add folder parameter to project creation (#1325)

* feat: add rename method to v2 assets (#1333)

* feat: add rename method to v2 assets (Folder, Project, SurfaceMesh, VolumeMesh, Case, etc)

* fix: raise rename method to AssetBase class

* fix: remove self return after renaming asset

* fix: remove return docstring + missed self returns

* feat: add tags filtering to Project.get_case_ids, Project.get_project_ids, and metadata (#1341)

* feat: add tag filtering support to Project class + metadata and class property, get_case_ids/get_project_ids methods

499f63b

* fix: remove unused imports + dangerous default value

* feat: add property tags to AssetBase

---------

Co-authored-by: dawood <mrblackcto@outlook.com>

* formatting changes

* formatting

* Bump to 25.6.5 and also add default value application to planar tolerance (#1348)

* fixed plannar tolerance import issue

* volume_meshing_translator_fix

---------

Signed-off-by: BenYuan <ben@flexcompute.com>
Co-authored-by: Angran <angran@flexcompute.com>
Co-authored-by: JunchengXue <97111055+JunchengXue@users.noreply.github.com>
Co-authored-by: BenYuan <ben@flexcompute.com>
Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
Co-authored-by: Maciej Skarysz <83596707+maciej-flexcompute@users.noreply.github.com>
Co-authored-by: Andrzej Krupka <156919532+andrzej-krupka@users.noreply.github.com>
Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Wiktor <wiktor.krzew@flexcompute.com>
Co-authored-by: marcvivesmassana <marc.vives@flexcompute.com>
Co-authored-by: dawood <mrblackcto@outlook.com>
Co-authored-by: Maciej Skarysz <maciej@flexcompute.com>
commit 85fea5a
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Wed Aug 27 19:41:50 2025 -0400

    Revert "Ensure the geometry tolerance and the planar tolerance are compatible with each other (#1389)" (#1392)

    This reverts commit ba7bd43.

commit 5113e28
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Wed Aug 27 15:35:12 2025 -0400

    Added the CustomVolume (#1380)

    * Added the CustomVolume

    Expose CustomVolume

    * Fixed lint and formatting

    * Skips boundary check for CustomVolume

commit ba7bd43
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Tue Aug 26 15:41:01 2025 -0400

    Ensure the geometry tolerance and the planar tolerance are compatible with each other (#1389)

    * Ensure the geometry tolerance and the planar tolerance are compatible with each other

    * Fix msg

commit 3f796a1
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Tue Aug 26 12:06:10 2025 -0400

    Improved robustness handling Geometry projects created completely with surface mesh files (#1388)

commit d73f48b
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Mon Aug 25 20:45:47 2025 -0400

    [FXC-2413] Added conflicting grouping handler for the grouping. (#1387)

    * Added conflicting grouping handler for the grouping.

    * Fix test

commit b84214a
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Mon Aug 25 20:39:04 2025 -0400

    Disables surface deletion and symmetric existence check when transformation is detected (#1385)

    * WIP

    * Disables surface deletion and symmetric existence check when transformtation is detected

commit 4b16ed0
Author: benflexcompute <ben@flexcompute.com>
Date:   Mon Aug 25 17:14:51 2025 -0400

    Remove print

commit e756b67
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Mon Aug 25 17:10:38 2025 -0400

    Added updater when loading cloud entity info and also added more logging (#1386)

    * Added updater when loading cloud entity info and also added more logging

    * fixed lint

commit 3d1a33d
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Aug 22 20:37:20 2025 -0400

    [Hotfix Main]: [SCFD-6066] Symmetry plane and face deletion logic. (#1384)

    * [SCFD-6066] Symmetry plane and face deletion logic. (#1383)

    * Added back validation for deleted surface detection and symmetry plane existence check

    * ADded expand and default box

    * fix lint

    * Fixing unit test

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
    Co-authored-by: benflexcompute <ben@flexcompute.com>

commit d451b9c
Author: yifan-flex <124317394+yifan-flex@users.noreply.github.com>
Date:   Fri Aug 22 18:00:54 2025 -0400

    fix(): change LiquidOperatingCondition translator so that Compressible solver type is allowed (#1379)

commit dd5e64d
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Fri Aug 22 12:17:06 2025 -0400

    [FXC-743] GAI surface mesher translator (#1266)

    * run test first and then fix test

    * Change reference case

    * GAI translator ready

    * shorten the line number

    * Remove print

    * Added the new parameters

commit 848ab40
Author: awccoppFC <alexander.coppeans@flexcompute.com>
Date:   Wed Aug 20 15:29:03 2025 -0400

    iso surface clipping based on wall distance interface (#1374)

    * added wall distance clip threshold option to isosurface

    * updated defautl for wall dist clip threshold in python client and added to solver_translator

    * fixed typo

    * added unit test for solver translator with wall distance clip option

    * added test for output_entities for wall distance clip threshold

    * formatting

    * run isort

    * fixed variable naming for pylint

    * changes from review

    * added pylint exception

    * updated comment associated with isosurface wall_dist_clip_threshold

    * removed debugging try except statement

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit d2768d2
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Wed Aug 20 15:15:29 2025 -0400

    [FXC-2376] Added support for VM error status (#1375) (#1377)

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit 7005ff2
Author: Savithru Jayasinghe <168450781+savithru-flex@users.noreply.github.com>
Date:   Wed Aug 20 14:35:31 2025 -0400

    Expose GeometryRefinement class (#1376)

    * Expose GeometryRefinement class

    * Linter

commit 5d761f0
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Tue Aug 19 10:27:09 2025 -0400

    Scheduled sync: main → develop (#1373)

    * allow n_edge=0 (#1371)

    * [FXC-2300] Improved error message when using legacy output field names (#1366) (#1367)

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

    * [FXC-2301] Fixed the translator not recursively finding solver variable names (#1365) (#1368)

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

    * [FXC-1749] make isentropic compressible solve on by default for liquid (#1369)

    * [FXC-1749] make isentropic compressible solve on by default for liquidOperatingCondition

    * Fix unit test

    * Change implementation

    * [FXC-342] [FXC-343] Add output classes for imported surfaces (#1352)

    * Add output for imported surfaces

    * Add docstrings

    * Address PR comments

    * Add TimeAverageImportedSurfaceOutput to time-average types

    ---------

    Co-authored-by: Feilin <52168719+feilin-flexcompute@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
    Co-authored-by: yifan-flex <124317394+yifan-flex@users.noreply.github.com>

commit daf7c95
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Mon Aug 18 13:32:49 2025 -0400

    [Hotfix Main]: Fix bug that dimensionalization used wrong velocity scale (#1362)

    * Fix bug that dimensionalization used wrong velocity scale (#1361)

    * Fix bug that dimensionalization used wrong velocity scale

    * Fix unit test

    * Fix formatting

    * Fixed unit test

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
    Co-authored-by: BenYuan <ben@flexcompute.com>

commit caabcfe
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Mon Aug 18 12:08:20 2025 -0400

    [SCFD-5640] Separating the time averaged output from non time averaged ones in translated JSON (#1263)

    * [SCFD-5640] Separating the time averaged output from non time averaged ones in translated JSON

    * Reverted monitor output related changes

    * Ready

commit 16fedf5
Author: Chaitanya Talnikar <141852878+chai-flex@users.noreply.github.com>
Date:   Fri Aug 15 16:42:34 2025 -0400

    Fix name for geometry refinement (#1363)

commit dff2e5b
Author: Chaitanya Talnikar <141852878+chai-flex@users.noreply.github.com>
Date:   Fri Aug 15 14:28:34 2025 -0400

    Add geometry refinement and other GAI related options (#1355)

    * Add geometry refinement and other GAI related options

    * Fix formatting

    * Added geometry refinement explicit cast

    * Fix some comments

    * Fix black

    * Address more comments

    * Finish adding unit tests

    * Fix lint and isort

    * Address comments

    * Fix json reference unit test failures

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit 82c5916
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Aug 14 23:17:44 2025 -0400

    Exposing error when boundary is missing compared to metadata (#1357) (#1358)

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit 8e38f54
Author: BenYuan <ben@flexcompute.com>
Date:   Fri Aug 15 01:54:50 2025 +0000

    Change auto merge workflow

commit f835ce4
Author: BenYuan <ben@flexcompute.com>
Date:   Thu Aug 14 16:27:40 2025 +0000

    Added sync-main-to-develop.yml

commit f5c2128
Author: awccoppFC <alexander.coppeans@flexcompute.com>
Date:   Tue Aug 12 16:27:13 2025 -0400

    Porous Jump Python Interface (#1332)

    * added porous jump bc to python client as well as tests

    * run black on code

    * fixed comments and ran isort + black

    * updated test

    * formatting

    * added tests for input validation for porous jump entity pairs

    * removed unnecessary code

    * test_validators_params.py

    * formatting

    * removed test

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit 04074e7
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Mon Aug 11 15:12:26 2025 -0400

    Raise on error by default (#1351) (#1354)

    * Added Python version for user agent

    * Fix lint

    * Raise on error by default

    * Changed the default to raise on error submission to avoid user confusion

    * Better error message

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit cb5324c
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Mon Aug 11 15:12:00 2025 -0400

    [Hotfix Main]: Added Python version for user agent (#1353)

    * Added Python version for user agent (#1350)

    * Added Python version for user agent

    * Fix lint

    * Fix conflict

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
    Co-authored-by: BenYuan <ben@flexcompute.com>

commit 64d3f9b
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Mon Aug 11 12:21:06 2025 -0400

    [Hotfix Main]: Bump to 25.6.5 and also add default value application to planar tolerance (#1349)

    * Bump to 25.6.5 and also add default value application to planar tolerance (#1348)

    * Resolve conflict

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
    Co-authored-by: BenYuan <ben@flexcompute.com>

commit edadff1
Author: dawood <mrblackcto@outlook.com>
Date:   Fri Aug 8 16:19:11 2025 -0400

    feat: add tags filtering to Project.get_case_ids, Project.get_project_ids, and metadata (#1341)

    * feat: add tag filtering support to Project class + metadata and class property, get_case_ids/get_project_ids methods

    499f63b

    * fix: remove unused imports + dangerous default value

    * feat: add property tags to AssetBase

commit 113e6e4
Author: dawood <mrblackcto@outlook.com>
Date:   Fri Aug 8 14:20:48 2025 -0400

    feat: add rename method to v2 assets (#1333)

    * feat: add rename method to v2 assets (Folder, Project, SurfaceMesh, VolumeMesh, Case, etc)

    * fix: raise rename method to AssetBase class

    * fix: remove self return after renaming asset

    * fix: remove return docstring + missed self returns

commit c21664b
Author: dawood <mrblackcto@outlook.com>
Date:   Fri Aug 8 12:58:57 2025 -0400

    feat: Add folder parameter to project creation (#1325)

commit 6ff4da5
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Aug 8 11:32:13 2025 -0400

    [Hotfix Main]: fix(): `planar_face_tolerance` might be missing and causing validation to fail (#1345)

    * fix(): `planar_face_tolerance` might be missing and causing validation to fail (#1344)

    * fix(): planar_face_tolerance might be missing and causing validaiton to fail

    * ensure valid param

    * Fixed test

    * FIX CONFLICT

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
    Co-authored-by: BenYuan <ben@flexcompute.com>

commit 838fb89
Author: dawood <mrblackcto@outlook.com>
Date:   Fri Aug 8 11:31:50 2025 -0400

    feat: Migrate Folder class to v2 API (#1317)

    * [FXC-2051] Removed unsteady initial_blade_direction check and also removed comments in v1 json (#1310) (#1312)

    * bug(): Removed duplicate pressure output when pressure is specified (#1309)

    * feat: migrate Folder class to v2 API endpoints

    * remove unused v1 import, run styling + lint checks

    * rerun isort + lint

    * disable pylint duplicate code

    * fix example files

    * delete test_folder_tree.py

    * delete examples, remove comments, update pydantic

    * fix: run linting + formatting

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit beb2af9
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Fri Aug 8 10:11:15 2025 -0400

    Updated the description of the planar_face_tolerance (#1342) (#1343)

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit 1875e27
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Aug 7 13:42:52 2025 -0400

    [FXC-2059] Added planar_face_tolerance translator for legacy mesher and also unified the validation (#1329) (#1337)

    * [FSC-2006] Disable boundary completness and deletion validation

    * Fix unit test

    * [FXC-2059] Added planar_face_tolerance translator for legacy mesher and also unified the validaiton

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit b479e80
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Aug 7 13:20:58 2025 -0400

    [FXC-2006] Disable boundary completeness and deletion validation (#1330) (#1336)

    * [FSC-2006] Disable boundary completness and deletion validation

    * Fix unit test

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit e4ab04e
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Aug 7 13:19:38 2025 -0400

    [FXC-1974] Dry run for run_case() (#1334) (#1335)

    * [FXC-1974] Dry run for run_case()

    Fix linting

    [FXC-2051] Removed unsteady initial_blade_direction check and also removed comments in v1 json (#1310) (#1312)

    * Added for sm and vm generations too

    * revert change on examples

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit ffbfa61
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Tue Aug 5 20:54:19 2025 -0400

    [Hotfix Main]: Fix the hotfix yaml not being able to handle the anti column (#1315)

    * [FXC-2051] Removed unsteady initial_blade_direction check and also removed comments in v1 json (#1310) (#1312)

    * bug(): Removed duplicate pressure output when pressure is specified (#1309)

    * Fix the hotfix yaml not being able to handle the anti column (#1311)

    * [FXC-2051] Removed unsteady initial_blade_direction check and also removed comments in v1 json

    * Fix the hotfix yaml not being able to handle the

    * Fix auto hotfix

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit 529aad3
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Tue Aug 5 14:31:43 2025 -0400

    Added a redunet test.. (#1318)

commit 13af543
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Tue Aug 5 14:01:01 2025 -0400

    Speed up the loading of the entities by using set and also reduce complexity with supplied known hash set (#1316)

    * Speed up the loading of the entities by using set and also reduce complecity with supplied known hash set

    * Remove description

    * Ready

    * Fix lint

commit a652eb2
Author: BenYuan <ben@flexcompute.com>
Date:   Mon Aug 4 16:10:20 2025 +0000

    Update readme

commit cba5d97
Author: BenYuan <ben@flexcompute.com>
Date:   Wed Jul 30 16:30:49 2025 +0000

    Update lock

commit 9daf86c
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Wed Jul 30 11:53:35 2025 -0400

    Bump the version number for 25.7 (#1260) (#1261)

commit 607cf42
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Wed Jul 30 10:29:06 2025 -0400

    Bump version for 25.6 official release (#1306)

commit aba6fa7
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Wed Jul 30 10:01:33 2025 -0400

    Some improvement on the `flow360 version` command (#1305)

    * Some improvement

    * formatting

commit bd0d12a
Author: marcvivesmassana <marc.vives@flexcompute.com>
Date:   Tue Jul 29 15:48:55 2025 -0400

    Example python file for post-processing time-averaged isosurfaces (#1291)

    * example file for time-averaged isosurfaces

    * added post-processing

    * added post-processing

    * added some text

    * changed temp folder to local folder

    * black validation

    * removed paths for download

    * removed lines

    * removed lines

    * removed lines

commit 4860b3a
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Tue Jul 29 11:06:52 2025 -0400

    Removed aws_region in the model (#1302)

commit 8fc2706
Author: Angran <angran@flexcompute.com>
Date:   Mon Jul 28 15:25:42 2025 -0400

    bump to 25.5.2b4 (#1300)

commit 9817108
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Mon Jul 28 15:10:38 2025 -0400

    Added updater for entities being in multiple outputs (#1293)

    * WIP

    * Added updater for entities being in multiple outputs

    * Deduplicate first before removing surfaces

    ---------

    Co-authored-by: Angran <angran@flexcompute.com>

commit d669f7f
Author: Angran <angran@flexcompute.com>
Date:   Mon Jul 28 13:16:25 2025 -0400

    Load the storage region from the backend response (#1299)

    * load the storage region from the backend response

    * Bump version

commit 1da335a
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sat Jul 26 12:27:00 2025 -0400

    [Hotfix Main]: Added version command and better project loading error (#1296)

    * Added version command and better project loading error (#1295)

    * Added version command and better project loading error

    * fixed unit tests

    * resolved conflict

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
    Co-authored-by: BenYuan <ben@flexcompute.com>

commit b232ea4
Author: benflexcompute <ben@flexcompute.com>
Date:   Fri Jul 25 20:34:06 2025 +0000

    Bump version

commit 026e261
Author: BenYuan <ben@flexcompute.com>
Date:   Fri Jul 25 20:26:09 2025 +0000

    Added v1 fallback original error

commit ea610f1
Author: Angran <angran@flexcompute.com>
Date:   Fri Jul 25 16:22:40 2025 -0400

    Remove get expanded entity list during preprocessing params for translator (#1292)

    * Remove expanded enttiy list

    * fix pylint

commit aaa647e
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Fri Jul 25 16:06:07 2025 -0400

    Revert "Removed the fall back of using Flow360Params (#1289)" (#1290)

    This reverts commit 211ef14.

commit 211ef14
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Fri Jul 25 13:42:53 2025 -0400

    Removed the fall back of using Flow360Params (#1289)

    * Removed the fall back of using Flow360Params

    * Fix lint

commit 12e8953
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Fri Jul 25 13:24:15 2025 -0400

    Remedy on the GhostCircularPlane existence check (#1288)

commit 7748bb4
Author: Angran <angran@flexcompute.com>
Date:   Fri Jul 25 12:56:13 2025 -0400

    separate get_project_records out (#1287)

commit c144e21
Author: Wiktor <wiktor.krzew@flexcompute.com>
Date:   Thu Jul 24 21:30:59 2025 +0200

    adopted the proposed flex credit example (#1284)

    * adoptes the proposed flex credit example

    * black

    * removed leading spaces

commit 1bb4dee
Author: Angran <angran@flexcompute.com>
Date:   Thu Jul 24 13:26:40 2025 -0400

    Fix Deserialize function when handling None description (#1286)

    * Update to_file implementatino to exclude None when dumpping json

    * Make sure deserialize can handle None description situation

    * Add fixed to_yaml

commit 8ed9998
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Wed Jul 23 17:15:07 2025 -0400

    [SCFD-5015] Projected frontal area support (#1262)

    * [SCFD-5015] Projected frontal area support

    * [SCFD-5943] Added translator support for the auto area

    * fix linter

commit b9f86f6
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Wed Jul 23 17:06:19 2025 -0400

    [SCFD-5945] Fix location of the expression validation error and also fix issues caused by converting the value variable to expression. (#1283)

    * [SCFD-5945] Corrected the location for expression error

    * proposed fix

    * Rebase anyway

    ---------

    Co-authored-by: Angran Li <angran@flexcompute.com>

commit 765d010
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Wed Jul 23 09:30:54 2025 -0400

    [Expression] Removed postProcessing key in the context and also added support for description (#1280)

    * [Expression] Removed postProcessing key in the context and also added support for description

    * isort

    ---------

    Co-authored-by: Angran <angran@flexcompute.com>

commit 315de84
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Wed Jul 23 09:18:37 2025 -0400

    fix(): misuse of .sort() which return None (#1282)

    * fix(): misuse of .sort() which return None

    * address comments

commit 8f86c7f
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Tue Jul 22 17:26:14 2025 -0400

    Added legacy tagging for previous UDFs (#1281)

    Co-authored-by: Angran Li <angran@flexcompute.com>

commit e12ab71
Author: Wiktor <wiktor.krzew@flexcompute.com>
Date:   Tue Jul 22 19:40:46 2025 +0200

    removed dev from example (#1272)

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit a872acb
Author: Angran <angran@flexcompute.com>
Date:   Tue Jul 22 13:40:14 2025 -0400

    Fix updater of from_mach_reynolds (#1276)

    * Fix updater of from_mach_reynolds

    * revert minor change

commit 69fea2f
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Tue Jul 22 11:28:36 2025 -0400

    [SCFD-5825] Remove 'p' and 'rho' from iso field (#1275)

commit c0183e0
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Tue Jul 22 09:41:41 2025 -0400

    [SCFD-5640] Disable the same surface being used in more than one Surface/TimeaverageSurfaceOutput (#1270)

commit 2f1b228
Author: Angran <angran@flexcompute.com>
Date:   Tue Jul 22 09:36:03 2025 -0400

    Move get_flow360_unit_system_liquid out for manifest usage (#1273)

commit 6721ee1
Author: Angran <angran@flexcompute.com>
Date:   Mon Jul 21 16:37:06 2025 -0400

    [FXC-1886] Fix incorrect dimensional output when liquid op is used (#1265)

    * Fix unit conversion bug for liquid

    * 1. Use liquid flow360 unit system for UDF conversion when liquid op is used
    2. Fix unit test

    * Fix compare_values and replace all incorrect checks

    * Address comments

    * Also fix other conversion factor

    ---------

    Co-authored-by: BenYuan <ben@flexcompute.com>

commit b56fbb9
Author: Angran <angran@flexcompute.com>
Date:   Mon Jul 21 16:15:12 2025 -0400

    Remove logging to file by default (#1269)

    * Remove file logger

    * Try again

    * try again

    ---------

    Co-authored-by: BenYuan <ben@flexcompute.com>

commit 4675b28
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Mon Jul 21 10:56:52 2025 -0400

    Resource reuse logic increase robustness (#1267)

    * WIP

    * Now fixing UDD

    * Fixed udd ordering

    * Need to know how the density works

    * Ready

    * READY

commit e350b82
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Fri Jul 18 14:13:14 2025 -0400

    Misc expression fixes (#1264)

    * Added support for front end JSON support when expression is empty/None

    * Regulated the unit symbols that can be used in the expression

    * Fixed unit test

commit 8e1bf21
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Thu Jul 17 10:50:19 2025 -0400

    Added bounding box info in support of inhouse symmetric (#1258)

    * Added bounding box info

    * Ready for testing, proper validaiton pending

    * deploy now, test pending

    * Fixed unit tests

    * Ready for testing

    * fixed unit test

    * Ready

    * Bump version due to addition of the global_bounding_box

commit 771e21e
Author: Angran <angran@flexcompute.com>
Date:   Fri Jul 11 13:03:44 2025 -0400

    Remove ceil and floor functions (#1259)

commit a4977dd
Author: Ben <106089368+benflexcompute@users.noreply.github.com>
Date:   Thu Jul 10 20:08:30 2025 -0400

    Enabled power operation on vector variables (#1257)

    * Enabled power operation on variables

    * Fix CI

    ---------

    Co-authored-by: Angran <angran@flexcompute.com>

commit fb5b737
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Thu Jul 10 13:49:36 2025 -0400

    [25.5] Add prefix option to read_all_v1_BETDisks function (#1253) (#1255)

    * initial implementation

    * Add index offset option

    * Address comment

    Co-authored-by: Angran <angran@flexcompute.com>

commit b485c0d
Author: Angran <angran@flexcompute.com>
Date:   Thu Jul 10 10:33:04 2025 -0400

    Add updater for from_mach_reynolds (#1252)

commit 047721d
Author: Angran <angran@flexcompute.com>
Date:   Wed Jul 9 15:17:28 2025 -0400

    Update auto hotfix workflow (#1241)

commit 1b81c3b
Author: BenYuan <ben@flexcompute.com>
Date:   Wed Jul 9 17:40:33 2025 +0000

    Add 'main' branch references

commit 3e15b6c
Author: Maciej Skarysz <83596707+maciej-flexcompute@users.noreply.github.com>
Date:   Wed Jul 9 19:29:45 2025 +0200

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

    * User expression support [POC] (#789)

    * 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

    * Make core blueprint package framework-agnostic, add support for partial 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

    * Fix Python 3.9 compatibility

    * Added complete list of usable solver variables (#888)

    * 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 <akrupka@Andrzejs-MacBook-Pro.local>

    * Ensure global scope variables are visible within validation service

    * Fix validation ordering bug

    * Allow extra fields in variable objects

    * Improved error messages (#945)

    * Nested expression support + expression validation endpoints (#946)

    * 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 <akrupka@Andrzejs-MacBook-Pro.local>

    * Reorganized solver variables into target namespaces (#986)

    * Reorganized solver variables into target namespaces

    * Apply PR feedback

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

    Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>

    * Update CI yaml

    * Fix unit tests after alias changes

    * Removed unused __init__.py items

    ---------

    Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>
    Co-authored-by: benflexcompute <ben@flexcompute.com>

    * Add dependency cycle checking and add non-dimensioned array handling to expression validation service (#1013)

    Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>

    * Validation service fixes, better error messages (#1030)

    * Validation service fixes

    * Fix aliasing issues, fix numpy interop with dimensioned variables

    * Apply PR feedback

    * Ready to merge

    ---------

    Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>
    Co-authored-by: benflexcompute <ben@flexcompute.com>

    * Added unit handling to solver code converter (#1049)

    * 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 <akrupka@Andrzejs-MacBook-Pro.local>
    Co-authored-by: benflexcompute <ben@flexcompute.com>

    * Expressions fixes, demonstrating E2E capability for user-variable expressions (#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 <akrupka@Andrzejs-MacBook-Pro.local>
    Co-authored-by: benflexcompute <ben@flexcompute.com>

    * Pylint Fix for `expression` branch (#1083)

    * 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 <akrupka@Andrzejs-MacBook-Pro.local>

    * Rolled back to python list types, no numpy interop as of now because it is not compatible with solver translation (#1108)

    * Rolled back to python list types, no numpy interop as of now because it is not compatible with solver translation

    * Format

    ---------

    Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>
    Co-authored-by: benflexcompute <ben@flexcompute.com>

    * Partial expression evaluation, example of a builtin function (#1115)

    * Cross in Pyhton mode works

    * WIP now needing for refactor to enable function on-demand import since current structure causes circular import

    * Some comments

    * Got symbolic evaluation to work but very HACKY

    * Refactored expressions module structure to be self-contained (still contains cyclic imports but only runtime, never at init...)

    * Partial evaluation before solver code translation

    * More fixes, simplify deserializer logic

    * Format

    * Fixed unit test as many as possible, only 1 left

    * Fixing most of the pylint issues

    * Fixed allow_inf_nan when evaluating expressions with solver variables

    * eagerly evaluation and also taking advantage of unyt pacakge

    * Small fixes

    * Fix invalid list initialization syntax in the C++ code generator

    * Added back the as_vector() implementation

    * Renamed raise_error

    * Remove extra evaluation call in cross, reduce unnecessary parentheses

    * some more small changes

    ---------

    Co-authored-by: benflexcompute <ben@flexcompute.com>
    Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>

    * Fixed merging

    * Fixed V1 tests

    * [FL-729] [FLPY-7] Dimensioned Volume Output (#1012)

    * Added unit test, now pending fixing lint and todos

    * Ready for review

    * Fix for windows-1

    * Format

    * Another attempt

    * Thank you Windows

    * should work now

    * Enabled all output types to use UserVariable (#1148)

    * Added unit test for project_variables and also simplified the translation unit test (#1151)

    * Added unit test for project_variables and also simplified the translation unit test

    * Removed print

    * Fix windows test

    * Added util function to get the unit from expression (#1157)

    * Added util function to get the unit from expression

    * removed print

    * Added catch for input_params is None

    * fix lint

    * Disables vector arithmetics for variables (#1158)

    * List all solver variables (#1150)

    * Initial implementation

    * More variable finished

    * Fix unit test

    * Fix pylint

    * Fix the issue that solver name is not used

    * Move prepending code to translator

    * Fix prepending code

    * Fix deserialize issue that output units is not loaded

    * self review of prepending code

    * typo fix

    * Address comments

    * fix grad pressure's prepending code

    * Added support for solver variable in output_fields and also fixed a bug when translating Mach (#1160)

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

    * Separate prepending code to declaration and computation parts (#1165)

    * Initial implementation

    * More variable finished

    * Fix unit test

    * Fix pylint

    * Fix the issue that solver name is not used

    * Move prepending code to translator

    * Fix prepending code

    * Fix deserialize issue that output units is not loaded

    * self review of prepending code

    * typo fix

    * Address comments

    * fix grad pressure's prepending code

    * Added support for solver variable in output_fields and also fixed a bug when translating Mach (#1160)

    * Replace wall shear stress with its magnitude, add unit test to whitelisted_callables

    * Fix coordinate, remove mu

    * Fix the scaling of turbulence solution

    * Fix the unit conversion for a list of float

    * Add missing vorticty magnitude

    * remove declaration when user-specified name is the same as the solver_name

    * Add velocity magnitude

    * Address comments

    * formatting

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

    * UserVariable as Token and value from context (#1161)

    * Implementation done, now checking pylint

    * Now writing the overwrite checker

    * Ready for self review

    * Enabled timestepping->step size to be expression too (#1166)

    * Enabled timestepping->step size to be expression too

    * Bumped version

    * Handles NaN desearilization (#1168)

    * Added proper base for surface probe output

    * Ben y/expression front end feedback (#1169)

    * Updated the project variables schema

    * rename gradient

    * Added translator for ValurOrExpression object (#1175)

    * Added postProcessing flag setter (#1176)

    * Added postProcessing flag setter

    * Fixed unit test

    * Fixed v1 unit test

    * Decouple solver variable's solver name with user variable name (#1170)

    * Initial implementation

    * Fix unit test

    * Expression validation bundle (#1181)

    * 1. Single UDF has single dimensionality

    * Change in_unit to in_units

    * Change in_unit to in_units

    Signed-off-by: BenYuan <ben@flexcompute.com>

    * Fixed unit test

    * Fixed all unit tests

    * Trying to fix windows

    * Removed unnecessary prints

    * Added legacy checker

    * added more test

    * Disabled degF and degC for the Expression

    ---------

    Signed-off-by: BenYuan <ben@flexcompute.com>

    * Fix heatflux related solver variables (#1186)

    * Fix heat flux related solverVariables

    * Remove unnecessary debug script

    * [Registry Rescale] Use solutionRescale in the prepending code (#1184)

    * Fixed unary op not allowed by expression (#1187)

    * Fix temperature output with user variable (#1194)

    * Fix the prepending code for temperature

    * Add unit test

    * Remove debug script

    * [TODOs pending] More Math Functions for `Expression` (#1185)

    * Added math function cross for 2 component

    * Added dot function

    * Added sqrt

    * removed unnecessary callable assingment

    * added translator unit test

    * [Angran] More operation added, needs double check

    * Added some unit tests, removed pow() since it is duplicate

    ---------

    Co-authored-by: Angran Li <angran@flexcompute.com>

    * Enable more fields to use value or expression (#1199)

    * Added all unit tests for ValueOrExpression fields

    * Added configure API to limit acceptance of the runtime expressions

    * Removed print

    * removed print, added extra=allow

    * Add more unit tests and validations for math operations (#1196)

    * Add validation and unit tests for multiple math operation

    * Handle mixture of unyt_quantity and expression/variable when using min/max function, add unit test for edge cases

    * Add more edge cases test

    * Add more edge cases and replace all dimensionality to dimensions

    * Add the remaining unit test and clean up todo list

    * Removed print

    * Address comments

    ---------

    Co-authored-by: BenYuan <ben@flexcompute.com>
    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

    * Added dependency graph and variable pre-sorting (#1202)

    * added dependency graph, now need to add the topo_sort

    * added dependency graph, now need to add the topo_sort

    * Fix lint and format

    * Added unit test and added the sort to init variable space. What about the validate expresion though???...

    * Fixed a bug in deserializer where syntax errors are not exposed (#1200)

    * Fixed a bug in deserializer where syntax errors are not exposed

    * Fix unit test

    * Fix lint

    * Fix unit test

    * Fixed validaiton service for not cleanning the cache and also that no dependency graph built for sorign (#1204)

    * Deploy again (#1208)

    * Add expression support for Isosurface (#1201)

    * Add validation and unit tests for multiple math operation

    * Handle mixture of unyt_quantity and expression/variable when using min/max function, add unit test for edge cases

    * Add more edge cases test

    * Add more edge cases and replace all dimensionality to dimensions

    * Add the remaining unit test and clean up todo list

    * Initial implementation

    * Validation fix

    * Add validation for using empty list in UserVariable

    * Add unit for for isosurface validation

    * Add validation for iso_value length

    * Fix translator for IsosurfaceOutput

    * Fix unit test

    * Fix unit test

    * Use new unit system for non-dimensionalization of random units in iso_value

    * Fix incorrect isovalue for dimensioned output

    * Update unit test to use a irregular units as iso value

    * Changed isoValue schema (#1207)

    * Exclude project_variables from nondimensionalization

    * Specify exclude in the individual class

    * some minor patching

    * Add unit to validate iso value's translation

    ---------

    Co-authored-by: BenYuan <ben@flexcompute.com>
    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

    * Removed validate_expression() (#1212)

    * Using discriminator to differencetiatye Value VS Expresison (#1215)

    * Added function to print all the output units for all post processing variables (#1213)

    * Added funciton to print all the output units for all post processing variables

    * some comments

    * Add validation to check the usage of surface specific solution variable in non-surface output fields (#1216)

    * Add validation to check the usage of surface specific solution variable in non-surface output fields

    * Address comments

    * Fix unit test

    * Added check for dependent features (#1218)

    * Now hand over to helper

    * Added check for dependent features

    * Removed print

    * Added missing check

    * Update SurfaceIntegralOutput for UserVariable (#1214)

    * rename node_normals to node_area_vector and add node_unit_normal

    * Update surfaceIntegral and UDF validation

    * Automatically multiply area to the surfaceIntegralOutput

    * Update tests/simulation/params/test_validators_params.py

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

    * Create a new user variable for surface integral

    * Address comments

    * Address comments

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

    * More IsosurfaceOutput changes for Expression (#1220)

    * Initial implementation

    * fix get_output_units and corresponding unit test

    * Add unit test

    * Improve unit test

    * address comments

    * Enable usage of constant value as output variables. (#1219)

    * Enable usage of constant value as output variables.

    * Remove print

    * Added pi (#1222)

    * Added pi

    * Removed print

    * Renamed project_variables to variable_context (#1224)

    * Temporary disable unit system when validating ValueOrExpression (#1225)

    * Fixed the iso_value field validator dependency resulting in wrong error (#1230)

    * Fixed the iso_value field validator dependency resulting in wrong error

    * Revert accidental comment

    * formatter

    * [Expression] Add functions to get/remove/show user variables (#1226)

    * Reraise a different redeclaration error when loading simulation json

    * Fix error during translating isosurface

    * Add functions to get/remove/show user variables

    * Address comments

    * Changed texting

    * Fix lint

    ---------

    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
    Co-authored-by: BenYuan <ben@flexcompute.com>

    * Skip feature-dependent validation for expressions that are not used (#1223)

    * Skip feature-dependent validaiton for expressions that are not used

    * Added recursive finding of dependendt variables

    * lint

    * [SCFD-5773] Fix issue where semicolumn breaks AST (#1231)

    * replace validated_by with boolean option for clear context (#1232)

    * Reviewed, improved error message and loc

    * Some polishing

    * [SCFD-5806] Add solver side internal variables to the block lsit

    * Convert number user variables to expression

    * Fix lint

    * Removed evaluated value/units

    * Fix lint and unit test

    ---------

    Signed-off-by: BenYuan <ben@flexcompute.com>
    Co-authored-by: Andrzej Krupka <156919532+andrzej-krupka@users.noreply.github.com>
    Co-authored-by: Andrzej Krupka <akrupka@Andrzejs-MacBook-Pro.local>
    Co-authored-by: benflexcompute <ben@flexcompute.com>
    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>
    Co-authored-by: Angran <angran@flexcompute.com>

commit f21249a
Author: JunchengXue <97111055+JunchengXue@users.noreply.github.com>
Date:   Wed Jul 9 21:40:07 2025 +0800

    feat(): add customize user agent for the request from python client (#1221)

    * feat(): add customize user agent for the request from python client

    * fix!

    * fix!

    * Fix formatting

    ---------

    Co-authored-by: BenYuan <ben@flexcompute.com>
    Co-authored-by: Ben <106089368+benflexcompute@users.noreply.github.com>

commit c62a968
Author: Angran <angran@flexcompute.com>
Date:   Wed Jul 9 08:58:09 2025 -0400

    Add Project Length To ValidationInfo (#1233)

    * Add project_length_unit to validation_info

    * Utilize validation_info when parsing multiconstructor model

    * Add unit test and fix format

    * Address comments

    * Address comment again

    * Address comments round 3
Copy link
Collaborator

@benflexcompute benflexcompute left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done with part 1 review

@piotrkluba
Copy link
Collaborator Author

Three general comments to the review:

  1. Abbreviations - if some parameter names are shortened it is so they resemble the names of parameters from OpenFOAM directly.
  2. Some validators in snappy_specs are changing user input - This is to allow the users to disable a QualityMetric by inputing None into it. The problem is that we want to have different defaults for some of the metrics than None and If we left it as none and dealt with the change in the translator the params would delete all nones and reconstructed them as defaults when sending to cloud. We also do not want to make the users disable the metrics as in OpenFOAM as there are different ways to disable different metrics.
  3. The beta_mesher_triggers are there to automatically detect if the beta mesher should be used without the user having to input that into run_case. I have already a feature branch prepared to submit a PR for that functionality.

@benflexcompute
Copy link
Collaborator

benflexcompute commented Nov 14, 2025

Three general comments to the review:

  1. Abbreviations - if some parameter names are shortened it is so they resemble the names of parameters from OpenFOAM directly.
  2. Some validators in snappy_specs are changing user input - This is to allow the users to disable a QualityMetric by inputing None into it. The problem is that we want to have different defaults for some of the metrics than None and If we left it as none and dealt with the change in the translator the params would delete all nones and reconstructed them as defaults when sending to cloud. We also do not want to make the users disable the metrics as in OpenFOAM as there are different ways to disable different metrics.
  3. The beta_mesher_triggers are there to automatically detect if the beta mesher should be used without the user having to input that into run_case. I have already a feature branch prepared to submit a PR for that functionality.
  1. That is fine but we have our convention too. I think it is worth effort ensuring the interface being consistent. Can we just add OpenFOAM one as alias? During translation you can require dump by alias instead and customer can use OpenFOAM convention setting it up if they want to.
  2. I see then how about we make them a union of bool and value instead of Optional? Using None as disable is indeed not a good practice and that is why we have NoneSolver.
  3. Automatic trigger would still result in use_beta_mesher being set to True I assume. Then why bother checking all the same criteria again to figure it out?

@piotrkluba piotrkluba merged commit 479ed89 into main Nov 18, 2025
20 checks passed
@piotrkluba piotrkluba deleted the snappy-main branch November 18, 2025 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants