Non reflecting boundary condition
OpenLB – Open Source Lattice Boltzmann Code › Forums › on OpenLB › General Topics › Non reflecting boundary condition
- This topic has 7 replies, 2 voices, and was last updated 6 years, 9 months ago by mathias.
-
AuthorPosts
-
March 24, 2018 at 8:54 am #1970heng03313Member
Hi,
How to implement a non-reflecting boundary condition?
March 24, 2018 at 4:30 pm #2815mathiasKeymasterIf you google for lattice+boltzmann+non+reflecting, you will find some papers. Then, the question is if they are local or non-local, on- or off-lattice. Local, on lattice BC can be implemented by a new dynamic class, the rest needs a post-processor.
Best
MathiasMarch 25, 2018 at 4:46 am #2816heng03313MemberThanks.
Are these already implemented by code in OpenLB? If so, which? I suppose none of the examples demonstrates the use of a post-processor?
March 25, 2018 at 10:34 am #2817mathiasKeymasterWe have several BC in OpenLB implemented and in most cases we are using post processors. Please, have a look at the user guide. Best Mathias
April 25, 2018 at 11:34 am #2824heng03313MemberHi,
I have not been able to implement any non-reflecting boundary conditions using postProcessors. The user guide simply stated “For non-local dynamics, a so-called post-processor needs to be implemented and integrated into a BlockLatticeXD through a call to the method addPostProcessorXD.” which I don’t quite understand.
Does that also mean that parallelization is not possible since it is implemented with BlockLattice and not SuperLattice?
To illustrate my problem further, I refer to the example “cylinder2d” where the Re has been increased to 100. The reflected wave at the outlet is apparent. I would like to remove wave reflections of this kind. Ideally, it should be achieved without the use of a gradually increasing inlet since I would like to move on to the study of acoustics eventually.
I hope to get more help on this issue. Thanks.
April 25, 2018 at 1:07 pm #2825mathiasKeymasterA simple solution for the mentioned example / problem is to slowly and smoothly increase the inflow velocity form zero to the desired value. So you may chose a longer initialization time by e.g. change
int iTmaxStart = converter.getLatticeTime( maxPhysT*0.4 );
into
int iTmaxStart = converter.getLatticeTime( maxPhysT*0.8 );
Best
MathiasApril 26, 2018 at 3:03 am #2826heng03313MemberHi,
Thanks, I agree that your suggestion works in removing reflections at the open boundary. However, what is the impact of employing such a method in the study of acoustics where the inlet will be replaced by a time-dependent oscillating input?
I suppose the sound waves introduced into the system will reflect off the outlet regardless if the inlet is set to be a slowly increasing one?
April 26, 2018 at 8:05 am #2827mathiasKeymasterIf you that this kind bc, you may first test the other already implemented ones in OpenLB. And if needed you may implement your own. An easy way is, to copy one of the existing ones though all classes and then it also works in parallel. Mathias
-
AuthorPosts
- You must be logged in to reply to this topic.