robin.trunk
Forum Replies Created
-
AuthorPosts
-
robin.trunkKeymaster
Hi,
what is your goal? Do you want to know the velocity at a specific point? In this case the code below should work:
SuperLatticePhysVelocity3D<T, DESCRIPTOR> velocity(sLattice, converter);
AnalyticalFfromSuperF3D<T> intpolateVelocity( velocity, true );
T v1[3];
intpolateVelocity( v1,point1 );Here point1 is an array of T, for example
T point1[3] = {1., 0., 0.};The code for 2D should be analogue.
Best
Robinrobin.trunkKeymasterHi Muhamed,
since you want to consider a volume with this laser fields, a boundary condition probably is not enough.
Which method are you using for the simulation of the particle?
If you are using a continuous field for the particle like in the eulerEuler bifurcation3d example the solution is probably to apply a different diffusion coefficient in the respective region.
If you are using a discrete representation like in the eulerLagrange bifurcation3d example you could introduce an additional force, describing the impact of the mentioned laser field.Best
Robinrobin.trunkKeymasterHi Muhamed,
you can follow the bifurcation example. Particles are send into a splitting cylindrical tube representing the trachea. There you will find two example files, one simulating the particles with an Lagrangian approach (hard sphere model) and the other applying an Eulerian appraoch (advection-diffusion equation).
Best
Robinrobin.trunkKeymasterHi lesmodel,
for this constructor the origin point for the plane defaults to the center of the considered geometry.
Best
Robinrobin.trunkKeymasterDear lesmodel,
this seems rather like an mpi or cygwin problem than openlb, especially since with tcp newtwork protocolls seem to be involved.
I suggets a google search for the error:
http://stackoverflow.com/questions/34032655/cygwin-error-tcp-peer-send-blocking-send-to-socketBest
Robinrobin.trunkKeymasterHi lesmodel,
which compilers do you use in cygwin and your ubuntu systems? Also, how is your configuration in the Makefile.inc? If the buildtype is set to precompiled, try switching it to generic, then run
make cleanbuild
and try to compile again.Best
Robinrobin.trunkKeymasterHi goe89,
from the output, you only compiled the example, this is where you git the executable (.exe) from. To run the example, you need to run the .exe
Best
Robinrobin.trunkKeymasterHi Balzar,
for high Reynolds numbers you need to apply a turbulence model (e.g. SmagrosinskyBGKdynamics). To do this you have to change the the dynamics, you can have a look at the nozzle3d example, I think about line 349.
For small Reynolds numbers, what do you mean with “symmetric profile”? As far as i understand you are using a contant inflow velocity over the whole inlet? In this case you could check the corners, since there could occur some errors due to the non-smooth transition. Another problem could be the obstacle itself. If there is almost no angle of attac the obstacle maybe is just one cell thick? Such thin spikes can cause numerical errors, maybe increasing the resolution of the grid helps at this point.Best
Robinrobin.trunkKeymasterHi, maybe this post helps in implementing a new indicator for triangles:
http://optilb.org/openlb/forum?mingleforumaction=viewtopic&t=247The SmoothIndicator takes some parameters like mass, however this is a relict and should not be used in the computations. In addition the SmoothIndicator creates a smooth transition and is therefore not suited to set a discrete boundary, however you can have a look at it for implementing a IndicatorTriangle2D.
Best
Robinrobin.trunkKeymasterHi balzar29,
for the periodicity:
you can have a look at the thermal2D example, more specific the line
cGeometry.setPeriodicity( true, false );
this sets periodicity for x, but not y direction.For the velocity:
You can hand in an Analytical functor instead of a Poiseuille profile
std::vector<T> zero( 2,T() );
AnalyticalConst2D<T,T> u( zero );To control the parameters you want to have a look at the LBconverter at the beginning of main
http://optilb.com/DoxyGen/html/d1/d25/classolb_1_1LBconverter.htmlBest
Robinrobin.trunkKeymasterHi balzar29,
the Indicator is a functor which is called at another point in the library, when the material numbers are set.
In the
IndicatorCircle2D<S>::IndicatorCircle2D
the functor is initialized, here is the place to hand in parameters required for the desired equation.
The indicator return for coordinates, whether this coordinates are inside or outside the object. This is done in
bool IndicatorCircle2D<S>::operator()
This is the place to implement the equation describing the airfoil. “input” is the physical coordinate (input[0] for x-coordinate and input[1] for y-coordinate) which needs to be checked. “output[0]” is a boolean value that is returned. “true” or “1” if the point is inside the airfoil and “false” or “0” if the point is outside the airfoil.Best
Robinrobin.trunkKeymasterHi balzar29,
right now there is no functor for that. But if your airfoil can be described by a function like here
https://en.wikipedia.org/wiki/NACA_airfoil
you can create your own functor. It should be mainly copy-paste work, just have a look at
src/functors/indicator/indicatorF2D.cpp
src/functors/indicator/indicatorF2D.h
src/functors/indicator/indicatorF2D.hh
You can copy the IndicatorCircle2D, rename it and adapt the equation. Since there are probably more people interested in such simulations it would be great if would consider to send in your code for the airfoil-indicator and thus contribute to future releases of OpenLB.Best
Robinrobin.trunkKeymasterHi Sumit,
for descriptors you can have a look at > src > dynamics > latticeDescriptors.cpp/.h/.hh. There should a D3Q27Descriptor already be implemented. To find out why it won’t compile the whole error message is required.
Best
Robinrobin.trunkKeymasterHi cloner,
OpenLB has turbulence models included. See e.g. the nozzle3d example for the application of a Smagorinsky LES model.
Best
Robinrobin.trunkKeymasterHi Sumit,
the dependency of the timesteo size on these parameters is intrisic to the lattice Boltzmann method. There is no function to change the step size without affecting the spatial discretization and / or latticeU.
You just can look at the dependenccies in the LBconverter and maybe find a configuration that is suited for you. E.g. a smaller charU should result in larger physical timesteps, so maybe decreasing charU and setting x*converter.getLatticeU() in the CirclePoiseuille?Best
Robin -
AuthorPosts