CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Diesel Engine Combustion (https://www.cfd-online.com/Forums/openfoam-solving/63089-diesel-engine-combustion.html)

arun March 27, 2009 22:36

Diesel Engine Combustion
 
Hi All,

Currently i am simulating diesel engine combustion and facing some problem with the pressure trace validation. I followed the way of setting case for dieselEngineFoam by combining engineFoam and dieselFoam as suggested in previous threads.

Currently the simulation can run completely from IVO (-143 CAD) to EVO (131 CAD) but the pressure and temperature trace is way too low (2 bar simulation value) when compared with the experimental result (90 bar experimental value). I have tried to change the initial boundary condition, time step size, maxCo,and maxDT but the problem still exist.

I am new to OpenFoam and not sure what exactly cause current problem.And can anyone provide the case setting for dieselEngineFoam, this would be much of a help to me.

Thanks

Arun

chbenz March 28, 2009 05:30

Hi Arun,

i don`t understand your valve timing. Inlet Valve opens 143 CAD bevor Exchange TDC? Thats seems possible to me. But the exhaust valve is already close or near close position at this time. It depends if you have valve overlap or not.
If the EV is already open at compression it`s clear that the pressure wont rise.
Please specify your valve timing so we can speak about the same things.

Regards,
Christof

niklas March 28, 2009 06:48

When you are tuning the pressure trace you also need to tune the temperature (i.e mass)

It is close to TDC that heat-losses becomes important, so even if you get pressure that is good up to ~-60 CAD, if you have temperature wrong, it will start to show up as you get close to TDC.
Start 2 other calculations where your temperature is +- 50 K of what you have now and you will see what I mean.

It is also vital that you have the correct effective compression ratio.

Other important effects are crank shaft compression and blow-by and temperature needs to account for all these effects,
since the piston movement curve is deduced from Heywood and the volume is closed.

arun March 28, 2009 07:23

Hi Christof,

Thanks for your reply and its my bad that i have made typo error, the -143 CAD is the IVC time and 131 CAD is the EVO. So the mesh has no valves because i am only simulating the closed cycle. And sorry for the typo.

Thanks again

Arun

chbenz March 28, 2009 07:33

Hi again,

if i unterstand right, you anticipate a pressure of 90bar at ignition TDC. Please write your start conditions for your simulation. I think it will help to solve your problems. Also send your entries in the engineDict.

Christof

arun March 30, 2009 03:52

Hi Niklas,

Thank you for your reply. Additionally, I have done the other calculation with - +50K and notice the changes in the pressure trace due to trapped mass. However, the problem still exists. Also, I tried to vary the initial temperature and the problem still exists.

Then i thought that it might due to the mesh itself like what you have mentioned before about the effective compression ratio, so what i did was i set the injection timing very late such that no fuel will be injected between -143 CAD and 131CAD; so that i can get the motored case pressure trace. The result shows that the problem is not solved (motored case experimental peak pressure = 53 bar, but current peak for simulation result is 20 bar).

This mesh was created using k3prep, KIVA; and the same mesh and same initial conditon were used in KIVA-3V setting. The result matches the experimental result
with +-10% CFD error for the combustion case, while the KIVA motored case matches the experimental motored case with less error.

Can you please advise that why the same case but gives such big different results. Since I am new to OpenFoam I not really sure that my case setting for the dieselEngineFoam is correct or I missed out something.

Thanks again.

Arun

niklas March 30, 2009 04:08

1 Attachment(s)
It sounds like you have a mistake in your setup, most probably the
compression ratio.

Have you run engineCompRatio to see what the compression ratio is?

At the moment I am using dieselEngineFoam to reproduce ...'something secret' and
its very important to have conditions at soi correct.

This is what I get after some adjustments.

chbenz March 30, 2009 04:18

Hi Arun,

please post your settings in engineDict. If its possible upload your case.

Christof

arun March 30, 2009 04:37

Hi Christof,

Yes I am anticipating a pressure of 90bar at ignition TDC.

Start conditions:
IVC = -143 ATDC
EVO = 131 ATDC
Initial temperature = 313K
Initial Pressure = 119000 Pa
SOI (pilot) = -30 ATDC
SOI (main) = -6 ATDC
Expected Peak pressure at TDC (Combustion Case)= 90 Bar
Expected peak Pressure at TDC (motored case) = 53 Bar
mass of fuel injected = 25mg/cycle

Engine Geometry

All unit in m

conRodLength conRodLength [0 1 0 0 0 0 0] 0.16;

bore bore [0 1 0 0 0 0 0] 0.086;

stroke stroke [0 1 0 0 0 0 0] 0.086;

clearance clearance [0 1 0 0 0 0 0] 0.002;

rpm rpm [0 0 -1 0 0 0 0] 1600;


Chemistry Properties

chemistry on;

chemistrySolver ODE;
//chemistrySolver EulerImplicit;
//chemistrySolver sequential;

initialChemicalTimeStep 1.0e-7;

sequentialCoeffs
{
cTauChem 1.0e-3;
}

EulerImplicitCoeffs
{
cTauChem 5.0e-2;
equilibriumRateLimiter off;
}

ODECoeffs
{
ODESolver SIBS;
eps 5.0e-2;
scale 1.0;
}

Thermophysical Properties

thermoType hMixtureThermo<reactingMixture>;

CHEMKINFile "/home//OpenFOAM/keyzhi-1.5/run/tutorials/kivaten/chemkin/chem.inp";
// We use the central thermo data:
CHEMKINThermoFile "/home//OpenFOAM/keyzhi-1.5//run/tutorials/kivaten/chemkin/therm.dat";

inertSpecie N2;

liquidComponents
(
C7H16
);

liquidProperties
{
C7H16 C7H16 defaultCoeffs;
}

/************************************************** *******************/

Thanks

Arun

chbenz March 30, 2009 05:11

I think your compression ration is much to high. I calculated 44 ?!?. A ratio of 15 is more realistic. Maybe i made a mistake.
Could you give us a view of your geometry?

Christof

arun March 31, 2009 12:09

Hi Niklas,

Previously I did not try to run engineCompRatio.
And now I have tried it and this is the error I am getting.
Right now I assume this is due to the mesh condition where is was created at -143 CAD not -180 CAD. Is this assumption true? Is there any way we could test this "engineCompRatio" with mesh that start from CAD other then -180 CAD?

And like what Christof mentioned the real engine's compression ratio is 18.2 and not suppose to be 44.


Create engine time

Create mesh for time = -148

Selecting engineMesh layered
deckHeight: 0.0972873
piston position: 0.01484
CA = -148
deltaZ = -0.00490304
clearance: 0.0873503
Piston speed = -0.143504 m/s
CA = 180
deltaZ = 0
clearance: 0.0873503
Piston speed = 0 m/s
CA = 360
deltaZ = 0.086
clearance: 0.00135034
Piston speed = 4.58667 m/s
CA = 360
deltaZ = 0
#0 Foam::error::printStack(Foam::Ostream&) in "/home/bluewind/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#1 Foam::sigFpe::sigFpeHandler(int) in "/home/bluewind/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#2 Uninterpreted: [0xb7f01420]
#3 Foam::fvMesh::movePoints(Foam::Field<Foam::Vector< double> > const&) in "/home/bluewind/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libfiniteVolume.so"
#4 Foam::layeredEngineMesh::move() in "/home/bluewind/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libengine.so"
#5 main in "/home/bluewind/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/engineCompRatio"
#6 __libc_start_main in "/lib/tls/i686/cmov/libc.so.6"
#7 __gxx_personality_v0 in "/home/bluewind/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/engineCompRatio"
Floating point exception

Thank you

Arun

arun March 31, 2009 12:15

Hi Christof,

I agree with you that the compression ratio is too high,and I have recalculated it again it shows 44.
The actual engine compression ratio is 18.2.
I reaaly would like to upload my case setting here but I don't know how to do it in this forum.
Is there any way that I can e-mail it to you?


http://www.cfd-online.com/home/bluew...Screenshot.png

Thank You

Arun

chbenz March 31, 2009 12:38

Hi Arun,

you can send me your email to christof_benz(at)web.de
I will have a look at the case.

Christof

niklas April 1, 2009 02:11

Quote:

Originally Posted by arun
And now I have tried it and this is the error I am getting.

This is a bug, I posted a fix for it in the bugs section.

Quote:

Originally Posted by arun
Is there any way we could test this "engineCompRatio" with mesh that start from CAD other then -180 CAD?

It shouldnt matter from which CA you start.
However, kiva-meshes start at BDC and its wise to run the compression ratio check before you start the calculation.

arun April 4, 2009 02:30

Hi Niklas,

Thanks for the bug info and the KIVA mesh info.
Right now I am learning how to compile FOAM so that can fix the bug.
So mean while, I tried to simulate from -180 and once the time reach 0 CAD the simulation crashes and the same error as the "engineCompRatio" test appears.

Is this error occurring due to the same "engineCompRatio" bug ?

Thanks in advance.

Regards
Arun

niklas April 6, 2009 03:58

Quote:

Originally Posted by arun (Post 211924)
Is this error occurring due to the same "engineCompRatio" bug ?

nope.

can you check the patches, especially the liner and cylinderHead patch.
I suspect that the top cell row belongs to the cylinderHead patch and
not to the liner patch.

check the z-coordinates of the lowest point in the cylinderhead and
use the -zHeadMin <value> with that value when you run kivaToFoam

arun April 8, 2009 10:43

Hi Christof,


I have tried with many smaller cell size and the simulation crash when reach 0 CAD.
Then after tried method suggested by Niklas the simulation can run completely from -180 to 180 CAD. The to row cell initially was under the cylinderHead bounday which cause the whole problem.

Thank you for your time in checking the case setting for me and solve the simulation problem.

Thanks again, really appreciate your help.

Arun

arun April 8, 2009 10:44

Hi Niklas,

I have checked the patches and found that the top cell row belongs to cylinder as u suspected.
This was the main problem all the while and I manage to solve it by using -zHeadMin as you suggested.

And the "engineCompRatio" bug has been fixed in OpenFOAM-1.5.x so I manage to compile it and
run "engineCompRatio" sucessfully.

Currently I am getting the motored peak pressure 52.77 bar (experimental motored peak pressure = 52.99 bar) and the simulation can run completely from -180 CAD to 180 CAD :) .

Thank You very much for your time to help me out here.

Thanks again, really appreciate your help here.

Arun

arun April 13, 2009 22:56

Hi Niklas,

Thanks for your previous advices to make my diesel engine simulation to work.
Right now I am simulating the combustion case with 15 species for the kinetics part and fine tuning my pressure trace. Soon i would like to test with more number of species and reactions to simulate the combustion process.

Currently I am facing some problem with the computational time where its' too slow. Therefore I intend to use ISAT, but I am not sure whether ISAT is already implemented in OpenFOAM1.5.x or not? Especially in dieselEngineFoam. If yes,where can I find the source code in the src diirectory? I have read in previous forum by Tommaso and he suggested to use this method (see below). But the problem is I don't really know where to implement/find this.

Please advice me on this.

------------------------------------------------------------------
onlineLibrary is used to tabulate the complex chemistry to reduce the computational time. It is a constant approximation version of the ISAT (in-situ adaptive tabulation) algorithm developed by Pope.

If you want to use the tabulated chemistry, the onlineProperties dictionary should be written as follows:

onlineProperties
{
tauStar off;

online on;

tolerance 1.0e-5;

logT off;

maxElements 100000;

cleanAll off;

scaleFactor
{
otherSpecies 1.0;
Temperature 1700;
Pressure 1.0e+10;
}

scaleFactorSolution
{
otherSpecies 1.0;
Temperature 1700;
Pressure 1.0e+10;
}

}

if you want to switch it off,

onlineProperties
{
tauStar off;

online off;

tolerance 1.0e-5;

logT off;

maxElements 100000;

cleanAll off;

scaleFactor
{
otherSpecies 1.0;
Temperature 1700;
Pressure 1.0e+10;
}

scaleFactorSolution
{
otherSpecies 1.0;
Temperature 1700;
Pressure 1.0e+10;
}

}

In the ISAT algorithm chemical source terms are tabulated into a binary tree and are used to approximate the chemical source terms of the nearest composition according to a specified tolerance.

Explanation of the terms:

tauStar: switch it off, it will be used in the future;
logT: if this option is switched on, the logarithm of the temperature will be tabulated instead of the temperature
maxElements: maximum number of elements to be tabulated (up to 5e6 is fine, then you can seriously run into memory troubles)
cleanAll: if switched on, it will clean the library after any time step. If you want to exploit the full capabilities of the method, switch it off
scaleFactor: tabulated data consist of chemical compositions, temperature and pressure. You can scale chemical compositions, temperature and pressure to get more points found
solutionScaleFactor: the same but used to extend the validity range of a tabulated composition.

For further details, please refer to the Pope's paper (you can find them on the web also) and to the code implementation. In particular
- chemistrySolve.C
- chemistryOnlineLibrary.C
-----------------------------------------------------------------------------

Secondly I would like to use multiple timestep setting in my simulation. Therefore I tried to set the controlDict with "controlDict (start/stop CAD = -180 to -30),controlDict.1st (start/stop CAD = -30 to 5), controlDict.2nd (start/stop CAD = 5 to 180)", but the simulation crashes at -30 CAD. What might be the cause of the problem and how do I go about this?

Please advice.

Many Thanks in advance.

Arun

georg June 6, 2010 13:51

Hello everybody,

i am also using dieselEngineFoam at the moment to validate against a KIVA case. I have a problem regarding combustion. The pressure trace looks fine until start of combustion. After SOI fuel conversion starts, but neither the experimental nor the KIVA pressure traces are reached. It looks like the amount of consumed fuel is less than injected. But the solver output regarding fuel mass is ok.

I am calculating full load operation of a large bore engine with peak pressure over 180 bar. Does anybody know where the error could be?

Regards,
Georg


All times are GMT -4. The time now is 18:16.