All Projects → jaheyns → Cfdof

jaheyns / Cfdof

Computational Fluid Dynamics (CFD) for FreeCAD based on OpenFOAM solver

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Cfdof

Drakon Extruder
3D Printable 3:1 Geared Extruder
Stars: ✭ 80 (-55.8%)
Mutual labels:  cad
Leocad
A CAD application for creating virtual LEGO models
Stars: ✭ 1,782 (+884.53%)
Mutual labels:  cad
Stanforddoggoproject
Stanford Doggo is an open source quadruped robot that jumps, flips, and trots!
Stars: ✭ 2,016 (+1013.81%)
Mutual labels:  cad
Jp01
JP01 - Arisu Custom CNC Aluminum Unibody Keyboard Case
Stars: ✭ 84 (-53.59%)
Mutual labels:  cad
Zcad
Simple CAD program
Stars: ✭ 91 (-49.72%)
Mutual labels:  cad
Tsugite
This is the repository of a Tsugite. It is a research prototype of an interactive software that supports the design and fabrication of wood joints.
Stars: ✭ 134 (-25.97%)
Mutual labels:  cad
Flexcli
FlexCLI is a C++/CLI interface to access NVidia Flex from .Net environments like C#, IronPython, VB etc. FlexHopper is a plugin for Grasshopper built on top of FlexCLI
Stars: ✭ 75 (-58.56%)
Mutual labels:  cad
Elm Geometry
2D/3D geometry package for Elm
Stars: ✭ 162 (-10.5%)
Mutual labels:  cad
Measureit arch
An expansion of Antonio Vazquez's MeasureIt addon to add features to create Architectural Drawings in Blender 2.8
Stars: ✭ 93 (-48.62%)
Mutual labels:  cad
Libopencad
OpenSource library under X/MIT license to work with CAD files (DWG/DXF). Please use repository linked below, this one is abandoned.
Stars: ✭ 147 (-18.78%)
Mutual labels:  cad
Mpr
Reference implementation for "Massively Parallel Rendering of Complex Closed-Form Implicit Surfaces" (SIGGRAPH 2020)
Stars: ✭ 84 (-53.59%)
Mutual labels:  cad
Freecad
This is the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler. Issues are managed on our own bug tracker at https://www.freecadweb.org/tracker
Stars: ✭ 10,366 (+5627.07%)
Mutual labels:  cad
Solvespace
Parametric 2d/3d CAD
Stars: ✭ 1,948 (+976.24%)
Mutual labels:  cad
Angelcad
script based 3D solid modeller
Stars: ✭ 83 (-54.14%)
Mutual labels:  cad
Antimony
Antimony is a computer-aided design (CAD) tool from a parallel universe in which CAD software evolved from Lisp machines rather than drafting tables
Stars: ✭ 1,902 (+950.83%)
Mutual labels:  cad
Wl Bim Viewer
用于vue框架的bim三维模型预览插件。Bim 3D model preview plugin for vue framework.
Stars: ✭ 78 (-56.91%)
Mutual labels:  cad
Jcsg
Java implementation of BSP based CSG (Constructive Solid Geometry)
Stars: ✭ 121 (-33.15%)
Mutual labels:  cad
Gdspy
Python module for creating GDSII stream files, usually CAD layouts.
Stars: ✭ 171 (-5.52%)
Mutual labels:  cad
Gismo
G+Smo (pronounced gismo or gizmo) is a C++ library for isogeometric analysis (IGA). Geometry plus simulation modules aims at the seamless integration of Computer-aided Design (CAD) and Finite Element Analysis (FEA).
Stars: ✭ 152 (-16.02%)
Mutual labels:  cad
Cavaliercontours
2D polyline library for offsetting, combining, etc.
Stars: ✭ 135 (-25.41%)
Mutual labels:  cad

CfdOF: A Computational fluid dynamics (CFD) workbench for FreeCAD

This workbench aims to help users set up and run CFD analyses within the FreeCAD modeller. It guides the user in selecting the relevant physics, specifying the material properties, generating a mesh, assigning boundary conditions and choosing the solver settings before running the simulation. Best practices are specified to maximise the stability of the solvers.

screenshot

The workbench serves as a front-end to the popular OpenFOAM® CFD toolkit (www.openfoam.org, www.openfoam.com).

Disclaimer: This offering is not approved or endorsed by OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com, and owner of the OPENFOAM® and OpenCFD® trade marks

Features

Current:

  • Incompressible, laminar flow (simpleFoam, pimpleFoam)
  • Incompressible free-surface flow (interFoam, multiphaseInterFoam)
  • High-speed compressible flow (HiSA)
  • Basic material database
  • Flow initialisation with a potential solver
  • Cut-cell Cartesian meshing with boundary layers (cfMesh)
  • Cut-cell Cartesian meshing with porous media (snappyHexMesh)
  • Tetrahedral meshing using GMSH
  • Postprocessing using paraview
  • Porous regions and porous baffles
  • Runs on Windows 7-10 and Linux
  • Unit testing
  • Extension to turbulent flow using RANS (k-w SST)
  • New case builder using an extensible template structure
  • Macro scripting

Platforms supported

Linux

Any system on which FreeCAD and the prerequisites listed below can be installed.

Windows

Windows 7-10; 64-bit version is required.

MacOSX

Not widely tested, but success has been reported.

Getting started

Prerequisites

The CfdOF workbench depends on the following external software, some of which can be automatically installed (see below for instructions).

Setting up the CfdOF workbench

Windows

The latest release or development FreeCAD build can be obtained (64 bit version) and installed by respectively running the installer or extracting the .7z archive to a directory . In the latter case, FreeCAD can be run in place (\bin\FreeCAD.exe).

Before installing CfdOF, the Plot workbench must first be installed into FreeCAD using the Addon manager:

  • Run FreeCAD
  • Select Tools | Addon manager ...
  • Select Plot in the list of workbenches, and click "Install/update"
  • Restart FreeCAD
  • Repeat the above for the "CfdOF" workbench
  • For installation of dependencies, see below

Note: The CFD workbench can be updated at any time through the Addon manager.

Dependency installation

Dependencies can be checked and installed conveniently from the CfdOF Preferences panel in FreeCAD. In the FreeCAD window, select Edit | Preferences ... and choose "CfdOF".

The OpenFOAM installation is via the OpenCFD MinGW package. The OpenCFD docker package as well as the BlueCFD Core port are also currently supported but have some issues.

OpenFOAM can be installed manually using the above link, or by clicking the relevant button in the Preferences panel described above. If you experience problems running OpenFOAM in CfdOF, please make sure you have a working installation.

Set the OpenFOAM install directory in the preferences panel to the install directory ending in the 'vXXXX' subfolder (where XXXX is the version number installed). It will be automatically detected in the default install location.

Any version of ParaView can be installed, by following the above link or clicking the relevant button in the Preferences panel. Set the ParaView install path in the preferences panel to the 'paraview.exe' file in the 'bin' subfolder of the ParaView installation. Common defaults will be detected if it is left blank.

Likewise, cfMesh and HiSA can be installed from the Preferences panel. Do not close the it until the 'Install completed' message is received. Note that the OpenFOAM installation must be in a writable location for cfMesh and HiSA to be installed successfully.

Choosing the "Check dependencies" option will verify that all prerequisites have been successfully installed.

Linux

AppImages of the latest release or development versions of FreeCAD can be downloaded and run directly without installation. Note that you will have to enable execution permission on the downloaded file to run it. The Ubuntu PPA daily build packages are an alternative binary option. Otherwise, FreeCAD can be built from the source code at https://github.com/FreeCAD/FreeCAD .

Before installing CfdOF, the Plot workbench must first be installed into FreeCAD using the Addon manager:

  • Run FreeCAD
  • Select Tools | Addon manager ...
  • Select Plot in the list of workbenches, and click "Install/update"
  • Restart FreeCAD
  • Repeat the above for the "CfdOF" workbench
  • For installation of dependencies, see below
Dependency installation

Dependencies can be checked and some of them installed conveniently from the CFD Preferences panel in FreeCAD. In the FreeCAD window, select Edit | Preferences ... and choose "CFD".

However, in Linux, manual installation is required for OpenFOAM (OpenCFD or Foundation versions), Paraview and GMSH (optional). They should be installed using your distribution's package manager or the links above.

Set the OpenFOAM install directory in the preferences panel - examples of typical install locations are /opt/openfoam7 or /home/user/OpenFOAM/OpenFOAM-7.x (It will be automatically detected in common default install locations.) Note that if you have loaded the desired OpenFOAM environment already, the installation path must be left blank to use this. This also applies in the case of the Debian OpenFOAM package which is integrated into the system.

cfMesh and HiSA can be installed using the Preferences panel described above, and can be downloaded and built from their source code inside your OpenFOAM installation if you have not already done so yourself. Note that this is a lengthy process.

Choosing the "Check dependencies" option will verify that all prerequisites have been successfully installed.

Feedback

Reporting Bugs

Please discuss issues on the CfdOF dedicated FreeCAD forum. Bugs can be reported on the gitlab project site.

Please first read the guidelines for reporting bugs in order to provide sufficient information.

Development

Total alertsLanguage grade: Python

It is asked that developers should only add functionality or code that is working and can be tested. Dead code, even portions included for possible future functionality, reduces function clarity and increases the maintenance overhead. Our philosophy is 'Do the basics well' and therefore robust operation takes precedence over extended functionality.

Testing

Unit testing is currently under development. Where possible, it is asked that all new functionality should be included in the unit test framework.

Style guide

For consistency please follow PEP8

  1. Use 4 spaces per indentation level (spaces are preferred over tabs).

  2. Limit all lines to a maximum of 120 characters.

  3. Break lines before binary operators.

  4. Blank lines

    • Surround top-level function and class definitions with two lines.

    • Definitions inside a class are surrounded by a single line.

  5. Imports should usually be on separate lines.

  6. Comments

    • Docstrings always use """triple double-quotes"""

    • Block comment starts with a # and a single space and are indented to the same level as that code

    • Use inline comments sparingly. They are on the same line as a statement and should be separated by at least two spaces from the statement.

  7. Avoid trailing whitespaces

  8. Naming convention

    • ClassNames (Camel)
    • variable_names_without_capitals (Underscore)
    • CONSTANTS_USE_CAPITALS (Uppercase)
    • functions_without_capitals (underscore, preferred as it follows PEP8)
    • functionsWithoutCapitals (Camel instead of underscore is accepted as it is widely used within FreeCAD)
    • __class_attribute (Double leading underscore)

Acknowledgements

Funding

This development was made possible through initial funding from Eskom Holdings SOC Ltd and the Council for Scientific and Industrial Research (South Africa).

Lead developers

The code is maintained by

Contributors

We acknowledge significant contributions from

  • Qingfeng Xia (2015) - Original framework
  • Michael Hindley (2016) - Initial concept
  • Klaus Sembritzki (2017) - Multiphase extension
  • Thomas Schrader (2017-) [email protected] - Testing and user assistance

Dedication

CfdOF is dedicated to the memory of Michael Hindley. It is thanks to his irrepressible enthusiasm for FreeCAD and open source software that this workbench exists. Rest in peace.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].