Git Product home page Git Product logo

reynolds-blender's People

Contributors

dmsurti avatar

Watchers

 avatar  avatar

reynolds-blender's Issues

Add snappy steps

Add a panel to pick the snappy steps:

// Which of the steps to run
castellatedMesh true;
snap            true;
addLayers       false;

Tooltips

All icons and labels should have tooltips for easy understanding.

Use default snappy settings

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.

Refactor test module design

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.

Refactor blockMesh add-on

  • Refactor the blockMesh add-on into multiple python modules
    • Add __init__.py to designate add on package
    • Extract OpenFoam starter panel to start open foam and add case directory
    • Extract blockMeshDict panel to generate dict and mesh
    • Extract solver panel to solve case, given solver name
  • Add test for solving cavity tutorial case

Add error handling

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

Use Travis CI to run blender in background mode and run tests

Check tutorials output from test runs

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.

Show generated mesh

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:

  • Number of obj files can vary per case
  • Not sure if the user wants to see all dumped in a layer which can make it difficult to view
  • Because number of obj files vary, can't deterministically arrange in layers either

Dimensions and values for properties (p,U,T)

  1. Keep the dimensions for velocity as [0 1 -1 0 0 0 0], pressure as [0 2 -2 0 0 0 0] and temperature as [0 0 0 1 0 0 0] as default.
  2. Make the "uniform" as separate drop down, so that user need not enter "uniform" for every value.
    Have the entries for velocity as x,y z separately.
    For example,
    If the user selects "uniform" from the drop down provided and enters 20 in x and 0 in y and z, it should take it as uniform (20 0 0)
    Similarly for pressure, if the user selects "uniform" from drop down provided and enters 20, it should take it as uniform 20
    Same thing for Temperature, similar to the Pressure.
  3. The above point is for fixedValue condition.

Show blockMesh obj files

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.

Mesh Picker Panel

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

Color scheme

Improve the color scheme to a consistent / readable / user friendly scheme for all panels in the add on.

Package add-on

  • Add script for local install in blender user scripts directory
  • Add script to generate a compressed zip to enable a user to install from file

Enable only open foam initially

Only the open foam panel should be enabled initially. Before clicking Start OpenFoam the user should select a case directory.

Simplify blockMesh

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:

screenshot 2017-09-07 16 32 50

Integrate snappyHexMesh

  • Refactor blockMesh API so adding more mesh generators is easy and intuitive
  • Add snappyHexMesh support
  • Solve flange tutorial case to demo snappyHexMesh integration
  • Add test to solve flange tutorial case

Reorder panels

The panels should be ordered as such:

  • Open Foam
  • Mesh Pickers
  • Block Mesh
  • Snappy Steps
  • Geometry
  • Snappy HexMesh
  • Surface Feature Extraction
  • Snapping Controls
  • Layers
  • Mesh Quality Controls
  • Solver

Add checkMesh

Add a button to run the chechMesh command in the solver panel.

Info panel should be async

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.

Add reynolds console

In the Blender's OpenFoam layout, add a console, where we can provide feedback to the user for various operations.

Add paraFoam

Add a button to invoke paraFoam in the solver panel.

Changes in ControlDict file

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.

Test output logs formatting

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.

Solver help button

Next to solver drop down, there should be a solver pop up which shows the description of all supported solvers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.