/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | foam-extend: Open Source CFD                    |
|  \\    /   O peration     | Version:     4.1                                |
|   \\  /    A nd           | Web:         http://www.foam-extend.org         |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

// solver control settings ...

functions
{
    lagrangianCoherentStructures
    {
        type            LCS;
        // Where to load it from (if not already in solver)
        functionObjectLibs ("libLCSFunctionObject.so");

        // Specifies if an oversetMesh is used for the simulation
        //- (default: false)
        isOverset false;
        // Name of cellZone in oversetMesh which is used for the lcs computation
        // (only needed if isOverset is true)
        lcsOversetRegion "refine";

        // Specifies if the main mesh is a static rectlinear Mesh 
        // (if yes the main cfd mesh is also used for the lcs computations)
        // (if not a rectlinear LCS blockMesh has to be created under 
        //  constant/LCS/polyMesh beforehand)
        // (MUST be true if isOverset is true)
        isStaticRectLinear true;

        // Velocity field name 
        //- (default: "U")
        velocityName "U";

        // Simulation time after which the LCS computation should start 
        //- (default: simulation startTime)
        lcsStartTime 0.1;

        // Simulation time after which the LCS computation should end 
        //- (default: simulation endTime)
        lcsEndTime 0.4;

        // LCS integration time length
        lcsIntegrationTime 10;

        // LCS output and flow map sub-step interval in s 
        //- (default: simulation write time intervall)
        lcsSubStepWriteIntervall 1;

        // Switches for FTLE field evaluation 
        // - Forward time (repelling) FTLE field 
        //- (default: true/on)
        ftleFwd    on;
        // - Backward time (attracting) FTLE field 
        //- (default: false/off)
        ftleBkwd   off;

        // Specifies addition or removal of grid points for the LCS calculation
        // - 0 LCS diagnostic will be computed on same grid (is default)
        // - 1, 2, ... Diagnostic will be computed on a grid with resolution 
        //             times more grid points
        // - -1, -2, ... Diagnostic will be computed on a grid with resolution 
        //               times less grid points
        //- (default: 0)
        resolution 0;

        // Determines time step for flow-map integration 
        //- (default: 0.5)
        lcsCFL          0.5;

        // Used flow-map time integration scheme 
        //- (default: rk2)
        integrator      rk3;

        // Used interpolation scheme for velocity interpolation
        // and flow map composition from sub-step flow maps 
        //- (default: linear)
        interpolator    linear;
        
        // LCS Options
        lcsOptions
        {
            synctimer       off;
            debug           off;
            writeFlowmap    off;
            writeBCFlags    off;
            incompressible  off;
            auxGrid         off;
        }
    }
}


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