안녕하세요? scalarTransportFoam 관련해서 문의를 드립니다. 현재 하려고 하는 일이 scalarTransportFoam 의 수송 방정식을 simpleFoam 솔버에 추가해서 농도장을 계산 하는 코드를 구성하는게 목표인데요 (icoFoam 솔버에 온도장을 푸는 방정식을 추가하는 부분은 수행해봤습니다) simpleFoam 솔버 폴더를 복사해서 새로운 폴더(mysolver)를 만들고 my 솔버에(아래) ----------------------------------------------------- while (simple.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; // --- Pressure-velocity SIMPLE corrector { #include "UEqn.H" #include "pEqn.H" } laminarTransport.correct(); turbulence->correct(); /*------------추가-------------*/ fvScalarMatrix cEqn ( fvm::div(phi,C) - fvm::laplacian(turbulence->nuEff()/0.9 , C) ); cEqn.solve(); /*------------추가-------------*/ runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" << nl << endl; } ---------------------------------------------------------- 위와같이 식을 추가했습니다 코드를 컴파일한 후(에러없이 컴파일 되었습니다) 0폴더에 C 파일을 추가했습니다 그리고 constant 폴더의 transportProperties 에 concentration diffusivity(kc) 값도 추가하였습니다 createFields.H 파일 내 transportProperties 내용에 농도장 C를 불러오는 volScalarField C 와 diffusivity 값이 불러 와지도록 구문을 추가했습니다. 위와같이 경계조건 파일들을 만든 후에 솔버를 실행하면 속도장은 농도장 방정식을 추가하기 전처럼 계산이 되지만 농도장은 계산이 되지 않습니다 (농도장 초기조건은 velocity inlet 부분에 무차원 1값을주고 나머지 경계조건에는 zerogradient 조건으로 줬습니다) 혹시 제가 지금까지 했던 과정중에 빠뜨리거나 잘못한 부분이 있으면 조언 부탁드립니다. ---------------------------------------------------------------- 아 그리고 추가질문으로 simplefoam.c 의 UEqn 부분에 + turbulence->divDevReff(U) 부분이 있는데 이 부분을 보려고 하면 어디로 들어가면 되는지 혹시 아시나요? divDevReff(U) 수식이 책에는 divDevReff(U) = - fvm :: laplacian ( nuEff () , U ) - fvc :: div ( nuEff () * dev ( T ( fvc :: grad ( U ) ) ) ) 라고 나오는데, 이부분을 확인하고싶어서 src/TurbulenceModels/...... 하위 폴더에 있는 소스파일들을 뒤져도 찾지를 못하겠네요;; 혹시 이부분도 알고 계신다면 조언 부탁드립니다. 읽어주셔서 감사합니다.
|