agenda - chalmershani/kurser/os_cfd_2010/andersry... · 2010-10-17 · agenda anders rynell...

28
H ˚ akan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 1 Agenda Anders Rynell hydrofoil modDamBreak interTrackFoam

Upload: others

Post on 15-Apr-2020

15 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 1

Agenda

Anders Rynell

• hydrofoil

• modDamBreak

• interTrackFoam

Page 2: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 2

hydrofoil domain

Anders Rynell

Page 3: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 3

Close-up of hydrofoil

Anders Rynell

Page 4: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 4

modDamBreak

Anders Rynell

Page 5: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 5

Procedure creating modDamBreak

Anders Rynell

runcp -r $FOAM_TUTORIALS/interTrackFoam/hydrofoil .rm -rf hydrofoil/constant/polyMeshcp -r $FOAM_TUTORIALS/interFoam/damBreak/constant/\polyMesh hydrofoil/constant/polyMeshmv hydrofoil modDamBreakrm -rf modDamBreak/constant/polyMesh/boundary

Page 6: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 6

Procedure creating modDamBreak

Anders Rynell

• Change boundary conditions for motionU , U and p

• Finite-area discretisation, makeFaMesh

Page 7: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 7

Time directory, 0

Anders Rynell

• motionU

• U

• p

Page 8: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 8

Constant directory, constant

Anders Rynell

• dynamicMeshDict

• faMesh

• freeSurfaceProperties

• polyMesh

• transportProperties

Page 9: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 9

Constant directory, dynamicMeshDict

Anders Rynell

twoDMotion yes;

solver laplaceFaceDecomposition;

diffusivity patchEnhanced;

distancePatches 1 (freeSurface);

frozenDiffusion yes;

pseudoSolid{

poissonsRatio 0.3;nCorrectors 3;convergenceTolerance 1e-9;

};

Page 10: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 10

Constant directory, solvers

Anders Rynell

Mesh motion solvers

• laplaceFaceDecomposition

• pseudoSolidFaceDecomposition

• RBFMotionSolver

Page 11: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 11

solver, laplaceFaceDecomposition

Anders Rynell

Diffusivity options for laplaceFaceDecomposition solver

diffusivity type

distancebased linear

quadratic

exponental

patchEnhanced

qualitybased uniform

distortionEnergy

deformationEnergy

other file

Table 1: The diffusivity options

Page 12: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 12

solver, laplaceFaceDecomposition

Anders Rynell

Page 13: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 13

solver, pseudoSolidFaceDecomposition

Anders Rynell

{poissonsRatio 0.3;nCorrectors 3;convergenceTolerance 1e-9;

};

Page 14: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 14

solver, pseudoSolidFaceDecomposition

Anders Rynell

Page 15: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 15

solver, RBFMotionSolver

Anders Rynell

Figure 1: large. Figure 2: large. Figure 3: close.

Page 16: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 16

faMeshDefintion

Anders Rynell

polyMeshPatches 1( freeSurface );

boundary{

left{

type patch;ownerPolyPatch freeSurface;neighbourPolyPatch left;

}

right{

type patch;ownerPolyPatch freeSurface;neighbourPolyPatch right;

}

Page 17: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

frontAndBackPlanes{

type empty;ownerPolyPatch freeSurface;neighbourPolyPatch frontAndBackPlanes;

}}

Page 18: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 18

faMeshDefinition

Anders Rynell

Page 19: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 19

freeSurfaceProperties

Anders Rynell

twoFluids no;

normalMotionDir no;

freeSurfaceSmoothing no;

cleanInterface yes;

muFluidA muFluidA [ 1 -1 -1 0 0 0 0 ] 0;

muFluidB muFluidB [ 1 -1 -1 0 0 0 0 ] 1.5e-5;

rhoFluidA rhoFluidA [ 1 -3 0 0 0 0 0 ] 1000.0;

rhoFluidB rhoFluidB [ 1 -3 0 0 0 0 0 ] 1.0;

surfaceTension surfaceTension [ 1 -2 0 0 0 0 0 ] 0.0;

Page 20: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

g g [ 0 1 -2 0 0 0 0 ] (0 -9.81 0);

fixedFreeSurfacePatches 1 ( inlet );

surfactantProperties{

bulkConc bulkConc [ 0 -3 0 0 1 0 0 ] 1.0e-2;

saturatedConc saturatedSurfConc [ 0 -2 0 0 1 0 0 ] 5.0e-6;

adsorptionCoeff adsorptionCoeff [ 0 3 -1 0 -1 0 0 ] 40.0;

desorptionCoeff desorptionCoeff [ 0 -3 0 0 1 0 0 ] 8.93e-2;

bulkDiffusion bulkDiffusion [ 0 2 -1 0 0 0 0 ] 1.0e-9;

diffusion diffusion [ 0 2 -1 0 0 0 0 ] 1.0e-9;

temperature temperature [ 0 0 0 1 0 0 0 ] 293.0;}

Page 21: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 21

normalMotionDir

Anders Rynell

Page 22: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 22

System

Anders Rynell

• contolDict

• faSolution

• faSchemes

• fvSolution

• fvSchemes

• tetFemSolution

Page 23: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Hakan Nilsson, Chalmers / Applied Mechanics / Fluid Dynamics 23

interTrackFoam

Anders Rynell

#include "fvCFD.H"#include "motionSolver.H"#include "freeSurface.H"#include "OFstream.H"

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

int main(int argc, char *argv[]){# include "setRootCase.H"# include "createTime.H"# include "createMeshNoClear.H"# include "createFields.H"# include "initContinuityErrs.H"

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

Page 24: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Info << "\nStarting time loop\n" << endl;

for (runTime++; !runTime.end(); runTime++){

Info << "Time = " << runTime.value() << endl;

# include "readInterfaceSIMPLEControls.H"# include "CourantNo.H"

interface.updateDisplacementDirections();

interface.moveMeshPointsForOldFreeSurfDisplacement();

interface.smooth();

// --- SIMPLE loopfor (label timeCorr=0; timeCorr<=nTimeCorr; timeCorr++){

p.storePrevIter();

interface.correctBoundaryConditions();

Page 25: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

tmp<fvVectorMatrix> UEqn(

fvm::ddt(rho, U)+ fvm::div(phiNet, U)- fvm::laplacian(mu, U)

);

UEqn().relax();

solve(UEqn() == - fvc::grad(p));

volScalarField AU = UEqn().A();

U = UEqn().H()/AU;U.correctBoundaryConditions();

UEqn.clear();

phi = (fvc::interpolate(U) & mesh.Sf());

Page 26: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

// Non-orthogonal pressure corrector loopfor (label nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++){

tmp<fvScalarMatrix> pEqn(

fvm::laplacian(1.0/AU, p) == fvc::div(phi));

pEqn().setReference(0, 0.0);pEqn().solve();

if (nonOrth == nNonOrthCorr){

phi -= pEqn().flux();}

}

# include "continuityErrs.H"

// Explicitly relax pressure for momentum correctorp.relax();

Page 27: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

// Momentum correctorU -= fvc::grad(p)/AU;U.correctBoundaryConditions();

// Move meshinterface.movePoints();

// Update motion fluxesphiNet = fvc::interpolate(rho)*(phi - fvc::meshPhi(rho, U));

# include "freeSurfaceContinuityErrs.H"}

runTime.write();

Info << "ExecutionTime = "<< scalar(runTime.elapsedCpuTime())<< " s\n" << endl << endl;

}

Page 28: Agenda - Chalmershani/kurser/OS_CFD_2010/andersRy... · 2010-10-17 · Agenda Anders Rynell •hydrofoil •modDamBreak •interTrackFoam. Hakan Nilsson, Chalmers / Applied Mechanics

Info << "End\n" << endl;

return(0);}