dmsurti / reynolds-blender Goto Github PK
View Code? Open in Web Editor NEWA reference implementation using Blender to demonstrate integration of reynolds with a 3D GUI interface.
License: GNU General Public License v3.0
A reference implementation using Blender to demonstrate integration of reynolds with a 3D GUI interface.
License: GNU General Public License v3.0
Add a panel to pick the snappy steps:
// Which of the steps to run
castellatedMesh true;
snap true;
addLayers false;
Refactor so that the blockMeshDict GUI panels can be generated with metadata, probably in JSON format.
Let the default state of panels be collapsed.
Add user documentation.
Add support to run solvers in parallel locally
Integrate mesquite for mesh quality controls.
All icons and labels should have tooltips for easy understanding.
Use default snappy settings for the scene attributes. This change should ideally ensure that output of flange test tutorial matches with the output if were to solve this case without using this add on.
For test_block_mesh.py
: from @prabhuramachandran:
refactor this into methods that do specific things? Instead of one long method -- intentional code with private methods, perhaps a _start_and_edit(), _make_geometry(), _solve() etc.
Things like starting foam, and other open foam commands, blender object look up, can definitely be part of a base test module. Refactor this when implementing snappyHexMeshDict.
As part of refactor, also better rename to test_cavity_tutorial
because we are really testing the tutorial here and not just the blockMesh
command.
__init__.py
to designate add on packageOpenFoam
starter panel to start open foam and add case directoryblockMeshDict
panel to generate dict and meshsolver
panel to solve case, given solver nameFor "Laplacian Scheme Default", it is none in blender by default. But it should be "Gauss linear orthogonal". Also snGradSchemes Default keep it "orthogonal".
For all operators, add error handling. For example, when running blockMesh
dict generation or the command, check if the case directory has been selected and openFoam
has been started.
Scan every operator and add required error handling.
Use Travis CI to run blender in background mode and run tests
Fix test cases to ensure that output from solving tutorial cases in tests match almost exactly compared to that by solving the cases manually using the foam CLI.
Allow the user to pick an open foam installation directory.
Use the writeMeshObj
command to generate the obj
files after running blockMesh
or snappyHexMesh
and then display those in a list which the user can pick to view.
The reason it is shown in a list for the user to view is:
Run blockMesh -blockTopology
after blockMesh
command is executed and display the blockToplogy.obj
file in layer 1. Similary, generate obj files for surfaceFeatureExtract
command and display in layer 1.
Add a panel to pick which mesh generation utilities will be used:
blockMesh : if this is selected, enable block Mesh panel
snappyHexMesh, if this is selected, enable snappy panels
Improve the color scheme to a consistent / readable / user friendly scheme for all panels in the add on.
Only the open foam panel should be enabled initially. Before clicking Start OpenFoam the user should select a case directory.
BlockMesh generation should not require user to toggle to edit mode. Provide a utility to add a block of given width, height, thickness.
Regions should be pickable as front, back, top, bottom, left and right faces.
Convert UI to a toolbar to add a block, cell parameters and handling regions.
Use this as a ref for a block:
Add design docs and generate API docs, critical to review and refactor!
The panels should be ordered as such:
Add a button to run the chechMesh
command in the solver panel.
Add operators for searchable sphere and box
Define default patches for : Front, Back, Top, Bottom, Left, Right faces.
Now, reynolds provides a live stream of output from any foam command. We redirect this stream to Blender's info panel, which should be async.
Generate the dicts when the user runs the mesh commands, namely blockMesh
and snappyHexMesh
.
In the Blender's OpenFoam layout, add a console, where we can provide feedback to the user for various operations.
Add a button to invoke paraFoam
in the solver panel.
Put all system buttons (controlDict/FvSolution/FvScheme) in one group and constant buttons in another group.
Keep the dimensions of "nu" and "DT" as [0 2 -1 0 0 0 0] as default, so that user can enter only the values.
The solver dropdown should have a 1-line solver description
Keep the "startTime" as 0 and "endTime" as 10 by default and "writeInterval" keep it as 20 as default, which can be modified by the user according to the need.
From @prabhuramachandran:
The test runs also are putting out a lot of extra white space making it hard to read -- perhaps the output can be filtered to remove extra empty newlines?
The test output logs need to be formatted for clear readability.
Next to solver drop down, there should be a solver pop up which shows the description of all supported solvers.
Allow user to pick his open foam installation.
Open Question: What minimum version of OpenFoam to support?
Add support to run solvers on a remote cluster
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.