/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  v2312                                 |
|   \\  /    A nd           | Website:  www.openfoam.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      energyBalanceDict;
}
// ************************************************************************* //

energyBalance
{
    type            cyclicEnergyBalance;
    enabled         true;
    
    // Thermal control parameters
    targetTemperature   300;     // [K]
    maxTemperatureError 0.1;     // [K]
    energyTolerance     1e-5;    // Relative energy error tolerance
    
    // Pressure-volume work compensation
    workCompensation   true;
    pRef              1e5;       // Reference pressure [Pa]
    VRef              1e-6;      // Reference volume [m³]
    
    // Adaptive source terms
    sourceTerm
    {
        type            adaptiveEnergySource;
        alpha           0.5;      // Blending factor (0-1)
        beta            0.01;     // Damping coefficient
    }
    
    // Cycle averaging
    cycleAveraging
    {
        method          phaseLocked;
        startPhase      0;        // 0-720 deg crank angle
        window          30;       // ±deg window for averaging
        weight          exponential;
    }
}
