Steady-state solver for incompressible, turbulent flow of non-Newtonian fluids with optimisation of duct shape by applying "blockage" in regions causing pressure loss as estimated using an adjoint formulation. More...
Go to the source code of this file.
Functions | |
template<class Type > | |
void | zeroCells (VolField< Type > &vf, const labelList &cells) |
int | main (int argc, char *argv[]) |
Steady-state solver for incompressible, turbulent flow of non-Newtonian fluids with optimisation of duct shape by applying "blockage" in regions causing pressure loss as estimated using an adjoint formulation.
Original source file adjointShapeOptimisationFoam.C
References:
"Implementation of a continuous adjoint for topology optimisation of ducted flows" C. Othmer, E. de Villiers, H.G. Weller AIAA-2007-3947 http://pdf.aiaa.org/preview/CDReadyMCFD07_1379/PV2007_3947.pdf
Note that this solver optimises for total pressure loss whereas the above paper describes the method for optimising power-loss.
Definition in file adjointShapeOptimisationFoam.C.
Definition at line 72 of file adjointShapeOptimisationFoam.C.
References cells, forAll, and Foam::Zero.
Referenced by main().
int main | ( | int | argc, |
char * | argv[] | ||
) |
Definition at line 87 of file adjointShapeOptimisationFoam.C.
References fvMatrix< Type >::A(), Foam::adjustPhi(), alpha(), alphaMax(), tmp< T >::clear(), fvConstraints::constrain(), Foam::constrainHbyA(), Foam::constrainPressure(), fvModels::correct(), nonOrthogonalSolutionControl::correctNonOrthogonal(), Foam::fvc::div(), Foam::fvm::div(), Foam::endl(), nonOrthogonalSolutionControl::finalNonOrthogonalIter(), fvMatrix< Type >::flux(), Foam::fvc::flux(), Foam::fvc::grad(), fvMatrix< Type >::H(), HbyA, Foam::Info, inletCells, lambda(), Foam::fvm::laplacian(), simpleControl::loop(), Foam::max(), Foam::min(), Foam::nl, p, phiHbyA(), rAU(), tmp< T >::ref(), pressureReference::refCell(), pressureReference::refValue(), fvMatrix< Type >::relax(), GeometricField< Type, PatchField, GeoMesh >::relax(), fvMatrix< Type >::setReference(), simple(), fvMatrix< Type >::solve(), Foam::solve(), fvModels::source(), Foam::fvm::Sp(), tUEqn(), turbulence(), U, UEqn, zeroAlpha(), and zeroCells().