Nivel 4: OpenFOAM Avanzado y C++Ambas·OpenFOAM 14 / v2606Tiempo estimado: 45 min

Programación de Solvers Propios en C++ y Compilación con wmake

La mayor ventaja de OpenFOAM es su total extensibilidad. En esta lección crearemos un solver derivado de simpleFoam que resuelve el transporte y difusión de un contaminante.

En esta lección:Estructura de Make/files y Make/optionsVariable $FOAM_USER_APPBINInclusión de volScalarField T_contaminanteCompilación con wmake

Creación de un Solver Personalizado en C++

Aprenderemos a crear miSimpleFoam, un solver que resuelve el campo de velocidad/presión con SIMPLE y añade el transporte convectivo-difusivo de una especie escalar pasiva $C$:

$$\frac{\partial C}{\partial t} + \nabla \cdot (\phi C) - \nabla \cdot (D_c \nabla C) = S_c$$


1. Copiar y renombrar el código fuente

bash
1
2
3
4
5
mkdir -p $FOAM_RUN/../applications/solvers cd $FOAM_RUN/../applications/solvers cp -r $FOAM_SOLVERS/incompressible/simpleFoam miSimpleFoam cd miSimpleFoam mv simpleFoam.C miSimpleFoam.C

2. Modificar Make/files

text
1
2
3
miSimpleFoam.C EXE = $(FOAM_USER_APPBIN)/miSimpleFoam

3. Añadir la ecuación en C++

En miSimpleFoam.C:

cpp
1
2
3
4
5
6
7
8
9
fvScalarMatrix CEqn ( fvm::div(phi, C) - fvm::laplacian(DT, C) == fuenteContaminante ); CEqn.relax(); CEqn.solve();

4. Compilar con wmake

bash
1
wmake