zhyang-dev / ibpm Goto Github PK
View Code? Open in Web Editor NEWThis project forked from cwrowley/ibpm
Immersed Boundary Projection Method
License: BSD 3-Clause "New" or "Revised" License
This project forked from cwrowley/ibpm
Immersed Boundary Projection Method
License: BSD 3-Clause "New" or "Revised" License
README for Immersed Boundary Projection Method (IBPM) ===================================================== The code contained in this distribution uses an immersed boundary method to solve the two-dimensional incompressible Navier-Stokes equations around complex geometries, using the projection method described in Taira and Colonius (2007). In particular, this code implements the "fast method" described in Section 3.3 of Colonius and Taira (2008), using the multi-domain approach for far-field boundary conditions, as described in section 4 of this reference. Getting started =============== To run the code, first build the executables as described below. The main executable is called 'ibpm' and will be created in the 'build' directory. The code reads an input file to determine the geometry, and a sample input file (for a cylinder) is contained in 'examples/cylinder.geom'. To run the code for this example: cd examples ../build/ibpm -geom cylinder.geom This will initialize the solver with a zero initial condition, and evolve the flow for 250 timesteps, writing binary 'restart' files (e.g. ibpm00100.bin) and ASCII files readable by the Tecplot plotting software (ibpm00100.plt). Lift and drag forces are written to the file ibpm.force, and the command executed is written to a file ibpm.cmd (so the same run can be recreated later). The default options (numbers of gridpoints, names of output files, etc) can be changed by command line arguments. To see the available options: ../build/ibpm -h Installation ============ Requirements: C++ compiler FFTW library, version 3 http://www.fftw.org/ Doxygen (to build documentation) http://www.stack.nl/~dimitri/doxygen/ Building the library and executables: The default configuration is to compile the code with the GCC compiler, with the FFTW library in a default location known to the compiler (e.g. /usr/local/lib). If this is acceptable, then to build the library and executables, all you need to do is type make from the root directory of the distribution (we will call this <ibpm>). The library and command-line tools will be generated in the 'build' directory. To customize the build process for your system, make a copy of the file 'config/make.inc.gcc' and modify it as needed (this file is included by other Makefiles, and the format is pretty self-explanatory). Save the new file as <ibpm>/config/make.inc and type 'make' from the root <ibpm> directory, as before. Building and running the automated tests: make test Building the documentation: make doc Documentation ============= The documentation consists of a user manual (in doc/ibpm_manual.tex), which describes the main functionality of the code, as well as detailed documentation automatically generated by Doxygen. The user manual is the best starting place for new users, and explains the format of the geometry files, among other things. The default configuration for the automatically generated documentation is to generate both html and LaTeX documentation, but this can be changed by modifying the file 'doc/Doxyfile'. Once the documentation has been built, the html documentation (usually the most useful) can be found in 'doc/html/index.html', and the LaTeX documentation can be found in 'doc/latex/refman.tex'. References ========== K. Taira and T. Colonius. The immersed boundary method: A projection approach. J. Comput. Phys., 225(2):2118-2137, August 2007. T. Colonius and K. Taira. A fast immersed boundary method using a nullspace approach and multi-domain far-field boundary conditions. Comp. Meth. Appl. Mech. Eng., 197(25-28):2131โ46, 2008.
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.