Calculation of adjoint based sensitivities at wall faces. More...
Protected Member Functions | |
void | addGeometricSens () |
void | setSuffixName () |
void | smoothSensitivities () |
scalar | computeRadius (const faMesh &aMesh) |
Protected Attributes | |
bool | includeSurfaceArea_ |
bool | includePressureTerm_ |
bool | includeGradStressTerm_ |
bool | includeTransposeStresses_ |
bool | useSnGradInTranposeStresses_ |
bool | includeDivTerm_ |
bool | includeDistance_ |
bool | includeMeshMovement_ |
bool | includeObjective_ |
bool | writeGeometricInfo_ |
bool | smoothSensitivities_ |
autoPtr< adjointEikonalSolver > | eikonalSolver_ |
autoPtr< adjointMeshMovementSolver > | meshMovementSolver_ |
autoPtr< volVectorField > | nfOnPatchPtr_ |
autoPtr< volVectorField > | SfOnPatchPtr_ |
autoPtr< volVectorField > | CfOnPatchPtr_ |
![]() | |
scalarField | derivatives_ |
incompressibleVars & | primalVars_ |
incompressibleAdjointVars & | adjointVars_ |
objectiveManager & | objectiveManager_ |
![]() | |
const fvMesh & | mesh_ |
dictionary | dict_ |
autoPtr< volScalarField > | fieldSensPtr_ |
Additional Inherited Members | |
![]() | |
static autoPtr< adjointSensitivity > | New (const fvMesh &mesh, const dictionary &dict, incompressibleVars &primalVars, incompressibleAdjointVars &adjointVars, objectiveManager &objectiveManager) |
Calculation of adjoint based sensitivities at wall faces.
The computation of the sensitivity derivatives follows the (E-)SI formulation of Kavvadias, I. S., Papoutsis-Kiachagias, E. M., Giannakoglou, K. C. (2015). On the proper treatment of grid sensitivities in continuous adjoint methods for shape optimization. Journal of computational physics, 301, 1-18. https://doi.org/10.1016/j.jcp.2015.08.012 whereas their smoothing based on the computation of the 'Sobolev gradient' is derived from Vassberg J. C., Jameson A. (2006). Aerodynamic Shape Optimization Part I: Theoretical Background. VKI Lecture Series, Introduction to Optimization and Multidisciplinary Design, Brussels, Belgium, 8 March, 2006.
Definition at line 77 of file sensitivitySurfaceIncompressible.H.
sensitivitySurface | ( | const fvMesh & | mesh, |
const dictionary & | dict, | ||
incompressibleVars & | primalVars, | ||
incompressibleAdjointVars & | adjointVars, | ||
objectiveManager & | objectiveManager | ||
) |
Definition at line 398 of file sensitivitySurfaceIncompressible.C.
References IOobject::AUTO_WRITE, mesh, IOobject::NO_READ, Foam::read(), and VectorSpace< Vector< scalar >, scalar, 3 >::zero.
|
virtualdefault |
|
protected |
Definition at line 54 of file sensitivitySurfaceIncompressible.C.
References fvMesh::boundary(), polyMesh::boundaryMesh(), polyMesh::faces(), forAll, objectiveManager::getObjectiveFunctions(), Tensor::I, sensitivitySurface::includeObjective_, deltaBoundary::makeFaceCentresAndAreas_d(), sensitivity::mesh_, primitiveMesh::nPoints(), adjointSensitivity::objectiveManager_, p, Foam::foamVersion::patch, face::points(), polyMesh::points(), PrimitivePatchInterpolation< Patch >::pointToFaceInterpolate(), syncTools::syncPointList(), VectorSpace< Vector< scalar >, scalar, 3 >::zero, and Foam::Zero.
Referenced by sensitivitySurface::accumulateIntegrand().
|
protected |
Definition at line 192 of file sensitivitySurfaceIncompressible.C.
References adjointSensitivity::adjointVars_, sensitivity::dict(), sensitivitySurface::includeMeshMovement_, word::null, shapeSensitivitiesBase::setSuffix(), and variablesSet::solverName().
Referenced by sensitivitySurface::write().
|
protected |
Definition at line 213 of file sensitivitySurfaceIncompressible.C.
References dictionary::add(), aMesh(), fvMesh::boundary(), GeometricField::boundaryFieldRef(), TimePaths::caseSystem(), sensitivitySurface::computeRadius(), polyMesh::dbDir(), DebugInfo, sensitivity::dict(), Foam::dimArea, Foam::dimless, Foam::constant::electromagnetic::e, Foam::endl(), Time::findInstance(), Foam::gMax(), Foam::Info, iters(), Foam::fam::laplacian(), Foam::mag(), sensitivity::mesh_, faMesh::meshSubDir, IOobject::MUST_READ, Foam::nl, IOobject::NO_READ, IOobject::NO_WRITE, patchID, GeometricField::primitiveFieldRef(), Time::printExecutionTime(), IOobject::READ_IF_PRESENT, autoPtr::ref(), faMatrix::relax(), autoPtr::reset(), faMatrix::solve(), Foam::fam::Sp(), Foam::sqr(), Foam::sqrt(), dictionary::subDictOrAdd(), fvMesh::time(), Time::timeName(), IOobject::typeHeaderOk(), vsm(), and Foam::Zero.
Referenced by sensitivitySurface::assembleSensitivities().
|
protected |
Definition at line 377 of file sensitivitySurfaceIncompressible.C.
References aMesh(), polyMesh::bounds(), sensitivity::dict(), forAll, Foam::gAverage(), polyMesh::geometricD(), dictionary::getOrDefault(), sensitivity::mesh_, polyMesh::nGeometricD(), Foam::pow(), and boundBox::span().
Referenced by sensitivitySurface::smoothSensitivities().
TypeName | ( | "surface" | ) |
void read | ( | ) |
Definition at line 503 of file sensitivitySurfaceIncompressible.C.
References incompressibleAdjointVars::adjointTurbulence(), adjointSensitivity::adjointVars_, sensitivity::dict(), sensitivity::dict_, sensitivitySurface::eikonalSolver_, dictionary::getOrDefault(), sensitivitySurface::includeDistance_, sensitivitySurface::includeDivTerm_, sensitivitySurface::includeGradStressTerm_, sensitivitySurface::includeMeshMovement_, sensitivitySurface::includeObjective_, sensitivitySurface::includePressureTerm_, sensitivitySurface::includeSurfaceArea_, sensitivitySurface::includeTransposeStresses_, sensitivity::mesh_, sensitivitySurface::meshMovementSolver_, adjointSensitivity::primalVars_, incompressibleVars::RASModelVariables(), sensitivitySurface::smoothSensitivities_, sensitivitySurface::useSnGradInTranposeStresses_, and sensitivitySurface::writeGeometricInfo_.
Referenced by SIBase::read().
|
virtual |
Reimplemented from sensitivity.
Definition at line 563 of file sensitivitySurfaceIncompressible.C.
References sensitivity::dict(), sensitivitySurface::eikonalSolver_, sensitivitySurface::meshMovementSolver_, and sensitivity::readDict().
Referenced by SIBase::readDict().
|
virtual |
Reimplemented from sensitivity.
Definition at line 584 of file sensitivitySurfaceIncompressible.C.
References fvMesh::boundary(), adjointSensitivity::derivatives_, and sensitivity::mesh_.
|
virtual |
Implements adjointSensitivity.
Definition at line 595 of file sensitivitySurfaceIncompressible.C.
References sensitivitySurface::addGeometricSens(), incompressibleAdjointVars::adjointTurbulence(), adjointSensitivity::adjointVars_, fvMesh::boundary(), GeometricField::boundaryField(), GeometricField::boundaryFieldRef(), GeometricField::component(), DebugInfo, sensitivitySurface::eikonalSolver_, Foam::endl(), forAll, objectiveManager::getObjectiveFunctions(), Foam::fvc::grad(), sensitivitySurface::includeDistance_, sensitivitySurface::includeDivTerm_, sensitivitySurface::includeGradStressTerm_, sensitivitySurface::includeMeshMovement_, sensitivitySurface::includeObjective_, sensitivitySurface::includePressureTerm_, sensitivitySurface::includeTransposeStresses_, Foam::Info, incompressibleVars::laminarTransport(), sensitivity::mesh_, sensitivitySurface::meshMovementSolver_, singlePhaseTransportModel::nu(), adjointSensitivity::objectiveManager_, p, incompressibleVars::p(), incompressibleAdjointMeanFlowVars::pa(), Foam::foamVersion::patch, adjointSensitivity::primalVars_, incompressibleVars::RASModelVariables(), Foam::T(), U, incompressibleVars::U(), incompressibleAdjointMeanFlowVars::Ua(), sensitivitySurface::useSnGradInTranposeStresses_, and Foam::Zero.
Referenced by SIBase::accumulateIntegrand().
|
virtual |
Implements adjointSensitivity.
Definition at line 800 of file sensitivitySurfaceIncompressible.C.
References fvMesh::boundary(), sensitivitySurface::CfOnPatchPtr_, adjointSensitivity::derivatives_, sensitivitySurface::eikonalSolver_, forAll, sensitivitySurface::includeDistance_, sensitivitySurface::includeMeshMovement_, sensitivitySurface::includeSurfaceArea_, sensitivity::mesh_, sensitivitySurface::meshMovementSolver_, sensitivitySurface::nfOnPatchPtr_, Foam::foamVersion::patch, autoPtr::reset(), sensitivitySurface::SfOnPatchPtr_, sensitivitySurface::smoothSensitivities(), sensitivitySurface::smoothSensitivities_, and sensitivitySurface::writeGeometricInfo_.
Referenced by sensitivityBezier::assembleSensitivities(), and sensitivityVolBSplines::assembleSensitivities().
|
virtual |
Reimplemented from adjointSensitivity.
Definition at line 893 of file sensitivitySurfaceIncompressible.C.
References adjointSensitivity::clearSensitivities(), shapeSensitivitiesBase::clearSensitivities(), sensitivitySurface::eikonalSolver_, sensitivitySurface::includeDistance_, sensitivitySurface::includeMeshMovement_, and sensitivitySurface::meshMovementSolver_.
Referenced by SIBase::clearSensitivities().
autoPtr< adjointEikonalSolver > & getAdjointEikonalSolver | ( | ) |
Definition at line 910 of file sensitivitySurfaceIncompressible.C.
References sensitivitySurface::eikonalSolver_.
|
virtual |
Reimplemented from adjointSensitivity.
Definition at line 916 of file sensitivitySurfaceIncompressible.C.
References sensitivitySurface::CfOnPatchPtr_, sensitivitySurface::nfOnPatchPtr_, sensitivitySurface::setSuffixName(), sensitivitySurface::SfOnPatchPtr_, adjointSensitivity::write(), shapeSensitivitiesBase::write(), and sensitivitySurface::writeGeometricInfo_.
Referenced by SIBase::write().
|
inline |
Definition at line 31 of file sensitivitySurfaceIncompressibleI.H.
References sensitivitySurface::includeObjective_.
Referenced by SIBase::read().
|
inline |
Definition at line 37 of file sensitivitySurfaceIncompressibleI.H.
References sensitivitySurface::includeSurfaceArea_.
|
inline |
Definition at line 44 of file sensitivitySurfaceIncompressibleI.H.
Referenced by SIBase::read().
|
inline |
Definition at line 53 of file sensitivitySurfaceIncompressibleI.H.
Referenced by SIBase::read().
|
protected |
Definition at line 88 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::assembleSensitivities(), sensitivitySurface::getIncludeSurfaceArea(), and sensitivitySurface::read().
|
protected |
Definition at line 91 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), and sensitivitySurface::read().
|
protected |
Definition at line 94 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), and sensitivitySurface::read().
|
protected |
Definition at line 97 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), and sensitivitySurface::read().
|
protected |
Definition at line 100 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), and sensitivitySurface::read().
|
protected |
Definition at line 103 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), and sensitivitySurface::read().
|
protected |
Definition at line 106 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), sensitivitySurface::assembleSensitivities(), sensitivitySurface::clearSensitivities(), and sensitivitySurface::read().
|
protected |
Definition at line 109 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), sensitivitySurface::assembleSensitivities(), sensitivitySurface::clearSensitivities(), sensitivitySurface::read(), and sensitivitySurface::setSuffixName().
|
protected |
Definition at line 112 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), sensitivitySurface::addGeometricSens(), sensitivitySurface::getIncludeObjective(), and sensitivitySurface::read().
|
protected |
Definition at line 115 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::assembleSensitivities(), sensitivitySurface::read(), and sensitivitySurface::write().
|
protected |
Definition at line 119 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::assembleSensitivities(), and sensitivitySurface::read().
|
protected |
Definition at line 121 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), sensitivitySurface::assembleSensitivities(), sensitivitySurface::clearSensitivities(), sensitivitySurface::getAdjointEikonalSolver(), sensitivitySurface::read(), and sensitivitySurface::readDict().
|
protected |
Definition at line 123 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::accumulateIntegrand(), sensitivitySurface::assembleSensitivities(), sensitivitySurface::clearSensitivities(), sensitivitySurface::read(), and sensitivitySurface::readDict().
|
protected |
Definition at line 126 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::assembleSensitivities(), and sensitivitySurface::write().
|
protected |
Definition at line 127 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::assembleSensitivities(), and sensitivitySurface::write().
|
protected |
Definition at line 128 of file sensitivitySurfaceIncompressible.H.
Referenced by sensitivitySurface::assembleSensitivities(), and sensitivitySurface::write().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.