weymouth / lily-pad Goto Github PK
View Code? Open in Web Editor NEWReal-time two-dimensional fluid dynamics simulations in Processing. Initiated by Dr G D Weymouth:
Home Page: https://github.com/weymouth/
License: MIT License
Real-time two-dimensional fluid dynamics simulations in Processing. Initiated by Dr G D Weymouth:
Home Page: https://github.com/weymouth/
License: MIT License
Sorry if i don't even make any sense or have not read everything you have published, but i have some ideas , questions , or suggestions for the solver..
So, i have tried a few schemes, they are like this. . 64x64 grids. is all i can run in debug. But, when i try see your code, its it the Algebraic MD?, your converges in 2 , not 80 iterations.. that is great. But i cannot fill a sky or half an ocean on a laptop.. with a rough grid. And i think like Molemaker/ Cohen.. it can be fixed with the GPU and IOP .. but .. thats tricky...http://enu.kz/repository/2010/AIAA-2010-523.pdf . This paper mentions FEFLO andLOC - FCT flux corrected transport.. i thought they used IOP and SIMPLE... and Cuda.. anyways.. Cuda is no good for me..since Skylake is a good cpu.
So, i make three grids.. they compiled them. They were all fast.. there was some stuttering , i believe is due to memory being released ..and the GC'd when maybe it shoudnt. I suspect GC as the cause of the stutters, using 3 processing running ( i forgot which , a flow past some circle)
FFT2 pressure solves seems fast even at 1024 x 1024. 1ms... for the fft on cpu.. But I read "periodic boundary conditions.. However, if the window is one period + buffer. to randomize Y. I dont know if periodic boundary conditions means the immerses rockets, creatures, etc.. need to be symmetrical or what?... I think the doing solves.. in a loose coupled way, which may be good enough only for vfx...to solver for pressure, fft back... then move the think and collide with the air, push it away using a the panel method... then fft solves will be super fast,high res...and using stams way.. stable. I would try it on my force if you think its worth a try, even if not for a CFD IB solver.
Also, as i watch my 3 windows,then i wonder.. should i instead try I use Multigrid , Chimera style , overlapping by 2 boxes.. covery all the info form one grid to the next?.. I could use this for a long 2d ocean with wave.. without resorting to mixed methods, or even narrow band flip. For ortho grids , especially ,this seems doable..
agin TLDR....if i don't even make any sense or missed the published plan. I am reading and reading but i haven't make much progress in my coding. Frankly i am overwhelmed with too many schemes and i just want fast /simple /stable/believable, or perhaps, interchangeable. most are edge based..MAC style..
What steps will reproduce the problem?
1. Modify body in Free Cylinder to Ellipsebody instead of Circlebody
2. Resolution = 16, Ellisebody (0.2*n, 0.5*m, D/2, 2, view)
3. No spring or dashpot in system, pure reaction of body to fluid
What is the expected output? What do you see instead?
Body move and react to fluid forces | Instead, vorticity blows up due to
exponential propagation of the initial perturbation
Please use labels and text to provide additional information.
Original issue reported on code.google.com by [email protected]
on 4 Feb 2013 at 7:22
Has there been any work towards converting the code from processing to javascript.
I'm working on testing new airfoil shapes in the program and I've noticed irregularities in the fluid when the shape has non-convex sections. Sort of like a weird twitching at the tip that I've noticed only forms when the shape has a concave section.
Does Lily Pad have the capability to simulate non-convex shapes accurately? If not why is the solver limited in that aspect and is there any way to accommodate concave shapes?
Any insight is appreciated.
Hi,
this is more a request than an issue. I wonder if there is an accompanying description on the core of the system. It ist quite fast and forces me to use it for other applications. But to adapt this (especially for 3D) a much more detailed documentation would be necessary. Currently it is impossible or at least hard for me to change the code for my own needs. Or do you think your thesis is sufficient? I downloaded it but didn't start to read.
Nevertheless: Good Work!
After copying the example code of Particle I get an error saying : The function update() does not exist.
Is it possible to have a BodyUnion of two FoilTests? i.e. have two of the FoilTest classes within one flow in order to determine the pressure and force for each, and their interaction with each other?
body = BodyUnion(new FoilTest(x,y,...), FoilTest(x2,y2....));
does not work
Is there a way to import custom shapes from a CAD platform? I was wanting to utilize grasshopper in rhino to run some optimizations on forms for architecture. I can most definitely read and stream data from the program looking at the audry test example. I was hoping to run a loop over a form or set of forms to focus wind flow. Old research, ongoing pet project now.
I'm working on a new adaptation of the code to simulate heaving and passive pitching foils. I'm trying to implement code to treat the pitching about the leading edge as a torsional spring in response to the moment imposed by the fluid. I am using the NACA geometry as the body and I was wondering what the variable "ma" is holding in the NACA file. It's used in the Body "react" function in computing the dynamics, what does it represent? Seems like it has something to due with the shape inertias but I'm not sure.
All help is appreciated, thanks.
first i just uncomment the code so tat the two phase file does all the work. this usually gives a result.
i needed to use the prior pix, to use the settings to set the size, in the middle of teh file like on the my last suggestested change
64
322 array out of bounds.
Field( Field b, int is, int n, int js, int m ){
this.n = n;
this.m = m;
a = new float[n][m];
btype = b.btype;
bval = b.bval;
for( int i=0; i<n; i++){
for( int j=0; j<m; j++){
a[i][j] = b.a[i+is][j+js];
}}
I would love it if a wave can eat a gulp air and it bubbles up..., or is sprayed out as the wave crashes.. while salf walter and refresh water or volcanic dust settles in ...i see this in REEF3d. vids on their site. wich is similar in setup.. the mesh based code in galerkin has got to be 10x better for the computational cost, but if its too hard to work with .. whats the use..
What steps will reproduce the problem?
1. Change Reynolds number to 1
2. QUICK scheme turned On
3. Allow for adaptive time step
4. Place two circular cylinders of equal size, D, at spacing 2D apart
What is the expected output? What do you see instead?
Expected: Suction Region in the wake of leading cylinder results in stabilizing
effect on vortices of both cylinders
Seen: Diffusion of vorticity and disappearance of vorticity with erratic spread
on upstream region
Please use labels and text to provide additional information.
Original issue reported on code.google.com by [email protected]
on 3 Oct 2012 at 5:20
When trying to have three NACA bodies moving independently, errors arise. Three bodies are created using the bodyUnion function. The bodies move correctly with two bodies, but not for three.
For movement with three bodies, it will still move the first body (body.a) however will not recognise the other two bodies as either body.b / body.c or body.b.a
Here is some sample coding of the issue:
BodyUnion body;
NACA foil;
void setup() {
int n=(int)pow(2, 6)+2; // number of grid points
size(800, 800); //sim window size
Window view = new Window(n, n);
float xFoila = 20, xFoilb = 20, xFoilc = 20;
float yFoila = 15, yFoilb = 25, yFoilc = 35;
float resolution = 16, thickness = 0.2;
//body = new BodyUnion( new NACA(xFoila,yFoila,resolution, thickness,view),
// new BodyUnion( new NACA(xFoilb,yFoilb,resolution, thickness,view),
// new NACA(xFoilc,yFoilc,resolution, thickness,view) )); //three bodies will not move correctly
body = new BodyUnion( new NACA(xFoila, yFoila, resolution, thickness, view),
new NACA(xFoilb, yFoilb, resolution, thickness, view)); //two bodies moving correctly
}
void draw() {
background(0);
body.a.translate(0, 0.1);
body.a.rotate(0.01);
body.b.translate(0, 0.1);
body.b.rotate(0.01);
body.update();
body.display();
}
Migrated from issue #10.
The attached LilyPad.pde has a circle moving up and down in a two phase flow. If QUICK advection is used, the flow is fine. If the semi-lagrangian advection is used, the flow blows up (infinite velocity near the air/water/body interface) at the end of the first cycle of motion. The semi-lagrangian is much better for interactivity (since the time step can be fixed to a large value), so this instability should be corrected.
The fact that switching advection scheme fixes the problem means this is unlikely to be related to the pressure solver.
Thank you very much for your contribution on Lily-pad!
I am wondering how to realise Vortex-induced vibration(VIV) through processing with Lily-pad.
I would really appreciate it if you can help me!
Many thanks!!!
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.