sfraniatte
Forum Replies Created
-
AuthorPosts
-
sfraniatteParticipant
You are right ! It was the problem. I works with materials 3,31,32,33,34. I just really do not understand why it uses the material 3 to compute Yplus. I wonder how it computes the Yplus value and if it is correct in my case. Thank you !
sfraniatteParticipantI compute y+ as in the aorta example :
if ( bouzidiOn ) {
SuperLatticeYplus3D<T, DESCRIPTOR> yPlus( sLattice, converter, superGeometry, stlReader, 3 );
SuperMax3D<T> yPlusMaxF( yPlus, superGeometry, 1 );
int input[4]= {};
T yPlusMax[1];
yPlusMaxF( yPlusMax,input );
clout << “\n yPlusMax=” << yPlusMax[0] << std::endl;
}It is definetely the number of digits because I did the test with the same case, the same quantity of materials but with different materials number (by swithcing materials from 30, 31, 32, 33, 34 to 3, 6, 7, 8, 9 for the inlets it does work).
sfraniatteParticipantFinnally, I think it works. It is just that the results are not what I excepted. I was looking at the pressure near the inlet and the outlet (which are not exactly at the inlet and the outlet) and it is not at all the values that I set at the inlet and outlet. However, when I see the whole flow with Paraview, I see that the stream become very complexe and I think it is ok. Then, by switching between Bouzidi and Bounce Back, because of the complexity of the aorta stl file, the result is different. It schows that Bouzidi is better I think.
Thanks a lot for your help and I can share it if you explain me how to do. I am still a beginner.
Best regard
SylvainsfraniatteParticipantI spoke to fast, it still does not work. So, to be clear, I use the aorta example and I want replace the velocity inlet condition by a pressure inlet condition. So I use the aorta stl file and I did touch the indicators for the inlet and the outlets. The inlet/outlet materials are placed correctly. When I use Bouzidi condition, this line is used : “setBouzidiBoundary<T,DESCRIPTOR>(lattice, superGeometry, 2, stlReader);”. When I use Bounce Back Boundary, this line is used : “setBounceBackBoundary(lattice, superGeometry, 2);”. It works only in the second case. So, I think that I have to add something in the first case but I do not know what.
Sorry for the previous message…
Best regard
SylvainsfraniatteParticipantI mean it is exactly the same behavior and the orientation of the inlets and the outlets are along the same axis. Sorry for the unuseful details.
However, it seems that I solved my problem. It was a line which did not have to be there.
Thanks a lot for your help !
Best regard
SylvainsfraniatteParticipantI use my own stl file and the aorta stl file. The result is exactly the same in the two cases. So, you can consider that I use the aorta stl file and that there is no problem with the stl file. The pressure boundary axis is aligned. I would like to set a pressure inlet and outlet condition by imposing 10 Pa at the inlet and 0 Pa at the outlet. It works only with BouzidiOn=False but My walls are not straight…
sfraniatteParticipantHi Adrian,
Thanks a lot for your message. In my case, the boundaries are straight at the inlet and the outlet but not at the walls. So, Bouzidi IBB is relevent. I used the aorta exemple and I just changed the inlet condition by removing the velocity condition and adding a pressure condition as below (it works only when bouzidiOn=False when the pressure condition is at the outlet but not with the inlet and the outlet). Maybe one line is missing but I really do not see which one.
Best regards
Sylvainvoid prepareGeometry( UnitConverter<T,DESCRIPTOR> const& converter, IndicatorF3D<T>& indicator,
STLreader<T>& stlReader, SuperGeometry<T,3>& superGeometry )
{OstreamManager clout( std::cout,”prepareGeometry” );
clout << “Prepare Geometry …” << std::endl;superGeometry.rename( 0,2,indicator );
superGeometry.rename( 2,1,stlReader );superGeometry.clean();
// Set material number for inflow
IndicatorCircle3D<T> inflow( 0.,-0.15,0., 0., 1.,0., 0.25 );
IndicatorCylinder3D<T> layerInflow( inflow, 2.*converter.getConversionFactorLength() );
// IndicatorCircle3D<T> inflow( -0.175,0.072,0., 1., 0.,0., 0.19 );
// IndicatorCylinder3D<T> layerInflow( inflow, 2.*converter.getConversionFactorLength() );
// std::vector<T> extend( 3, T(0) );
// extend[0] = 0.35;
// extend[1] = 2.5*converter.getConversionFactorLength();
// extend[2] = 0.35;
// std::vector<T> origin( 3, T(0) );
// extend[1] = -0.147;
// IndicatorCboid3D<T> layerInflow( extend,origin);
// superGeometry.rename( 2,2,1,layerInflow );
superGeometry.rename( 2,3,1,layerInflow );// Set material number for outflow0
//IndicatorCircle3D<T> outflow0(0.2053696,0.0900099,0.0346537, 2.5522,5.0294,-1.5237, 0.0054686 );
IndicatorCircle3D<T> outflow0( 0.,0.48,0., 0.,-1.,0., 0.08 );
IndicatorCylinder3D<T> layerOutflow0( outflow0, 2.*converter.getConversionFactorLength() );
superGeometry.rename( 2,4,1,layerOutflow0 );// Removes all not needed boundary voxels outside the surface
superGeometry.clean();
// Removes all not needed boundary voxels inside the surface
superGeometry.innerClean( 3 );
superGeometry.checkForErrors();superGeometry.print();
clout << “Prepare Geometry … OK” << std::endl;
}// Set up the geometry of the simulation
void prepareLattice( SuperLattice<T, DESCRIPTOR>& lattice,
UnitConverter<T,DESCRIPTOR> const& converter,
STLreader<T>& stlReader, SuperGeometry<T,3>& superGeometry )
{OstreamManager clout( std::cout,”prepareLattice” );
clout << “Prepare Lattice …” << std::endl;const T omega = converter.getLatticeRelaxationFrequency();
// material=1 –> bulk dynamics
lattice.defineDynamics<BulkDynamics>(superGeometry, 1);if ( bouzidiOn ) {
// material=2 –> no dynamics + bouzidi zero velocity
setBouzidiBoundary<T,DESCRIPTOR>(lattice, superGeometry, 2, stlReader);
// material=3 –> no dynamics + bouzidi velocity (inflow)
// setBouzidiBoundary<T,DESCRIPTOR,BouzidiVelocityPostProcessor>(lattice, superGeometry, 3, stlReader);
}
else {
// material=2 –> bounceBack dynamics
setBounceBackBoundary(lattice, superGeometry, 2);
// material=3 –> bulk dynamics + velocity (inflow)
//lattice.defineDynamics<BulkDynamics>(superGeometry, 3);
//setInterpolatedVelocityBoundary<T,DESCRIPTOR>(lattice, omega, superGeometry, 3);
}// material=3 –> bulk dynamics + pressure (inflow)
lattice.defineDynamics<BulkDynamics>(superGeometry.getMaterialIndicator(3));
setInterpolatedPressureBoundary<T,DESCRIPTOR>(lattice, omega, superGeometry.getMaterialIndicator(3));// material=4,5 –> bulk dynamics + pressure (outflow)
lattice.defineDynamics<BulkDynamics>(superGeometry.getMaterialIndicator({4, 5}));
setInterpolatedPressureBoundary<T,DESCRIPTOR>(lattice, omega, superGeometry.getMaterialIndicator({4, 5}));// Initial conditions
AnalyticalConst3D<T,T> rhoF(converter.getLatticeDensityFromPhysPressure(pression_sortie));
std::vector<T> velocity( 3,T() );
AnalyticalConst3D<T,T> uF( velocity );
AnalyticalConst3D<T,T> rho(converter.getLatticeDensityFromPhysPressure(pressure_entree));// Initialize all values of distribution functions to their local equilibrium
lattice.defineRhoU( superGeometry.getMaterialIndicator({1, 4}),rhoF,uF );
lattice.iniEquilibrium( superGeometry.getMaterialIndicator({1, 4}),rhoF,uF );
AnalyticalConst3D<T, T> rhoFromPressure(converter.getLatticeDensityFromPhysPressure(pressure_inlet));
lattice.defineRho( superGeometry.getMaterialIndicator(3),rhoFromPressure);
lattice.iniEquilibrium( superGeometry.getMaterialIndicator(3),rhoFromPressure,uF );lattice.setParameter<descriptors::OMEGA>(omega);
lattice.setParameter<collision::LES::Smagorinsky>(T(0.1));
// Lattice initialize
lattice.initialize();clout << “Prepare Lattice … OK” << std::endl;
}sfraniatteParticipantHi,
I have two questions. Do you use Bouzidi boundary condition ? What is the physical duration of your simulation at Re=14 ? I had maybe the same issue of stability and I figured out that Bouzidi boundary condition is the problem. I can not explain why but, when I set dp condition, it does not work with Bouzidi. I hope that someone knows why and it will help you.
Best regards
SylvainsfraniatteParticipantHi Mathias,
Thank you for your time but the lid driven cavity does not use Bouzidi choice for boundaries conditions since the boundaries are all straight…
Best regards
SylvainsfraniatteParticipantHello,
I figure out that I have to switch off the bouzidi boundary condition to set a pressure boundary condition. If not, the pressure at the inlet rise without stoping. Is there a way to keep the bouzidi choice ?
Thank you !
Best regards
SylvainsfraniatteParticipantHi Tim,
Thanks a lot for your fast respond. I did what I wanted with your help. Also, there is the example porousMedia/resolvedRock3d/ which helps.
Best regards
SylvainsfraniatteParticipantHi,
I am trying to set a pressure boundary condition at the inlet in the aorta3d example. However I do not find which function to use since this subject is too old now. Someone know how to do this ?
I am still a beginner and I don’t know how to find the response in Doxygen.
Thank you !
-
AuthorPosts