Commit Graph

2303 Commits

Author SHA1 Message Date
87b3006566 STYLE: backslash doxygen commands, email address, typos in error messages 2020-01-31 17:06:30 +01:00
d04de0d481 ENH: modified laplacianFoam to use dimScalar or volScalar for DT (#1388) 2019-10-07 12:59:39 -07:00
042c529f9f Merge branch 'feature-adjoint-shapeOptimisation' into 'develop'
ENH: New adjont shape optimisation functionality

See merge request Development/openfoam!307
2019-12-12 14:18:20 +00:00
b863254308 ENH: New adjont shape optimisation functionality
The adjoint library is enhanced with new functionality enabling
automated shape optimisation loops.  A parameterisation scheme based on
volumetric B-Splines is introduced, the control points of which act as
the design variables in the optimisation loop [1, 2].  The control
points of the volumetric B-Splines boxes can be defined in either
Cartesian or cylindrical coordinates.

The entire loop (solution of the flow and adjoint equations, computation
of sensitivity derivatives, update of the design variables and mesh) is
run within adjointOptimisationFoam. A number of methods to update the
design variables are implemented, including popular Quasi-Newton methods
like BFGS and methods capable of handling constraints like loop using
the SQP or constraint projection.

The software was developed by PCOpt/NTUA and FOSS GP, with contributions from

Dr. Evangelos Papoutsis-Kiachagias,
Konstantinos Gkaragounis,
Professor Kyriakos Giannakoglou,
Andy Heather

[1] E.M. Papoutsis-Kiachagias, N. Magoulas, J. Mueller, C. Othmer,
K.C.  Giannakoglou: 'Noise Reduction in Car Aerodynamics using a
Surrogate Objective Function and the Continuous  Adjoint Method with
Wall Functions', Computers & Fluids, 122:223-232, 2015

[2] E. M. Papoutsis-Kiachagias, V. G. Asouti, K. C. Giannakoglou,
K.  Gkagkas, S. Shimokawa, E. Itakura: ‘Multi-point aerodynamic shape
optimization of cars based on continuous adjoint’, Structural and
Multidisciplinary Optimization, 59(2):675–694, 2019
2019-12-12 14:17:29 +00:00
87bba9ae14 ENH: add selectable update control/interval to pimpleFoam, rhoPimpleFoam
- Allows user-defined control of when the mesh motion occurs,
  which can be especially useful in situations where the mesh motion
  is much slower than any of the fluid physics.

  For example, in constant/dynamicMeshDict:

      updateControl   runTime;
      updateInterval  0.5;

  to have mesh motion triggered every 1/2 second.

  Note that the _exact_ time that the mesh motion actually occurs may
  be slightly differently since the "runTime" triggering is fuzzy in
  nature. It will trigger when the threshold has been crossed, which
  will depend on the current time-step size.
2019-12-11 20:25:18 +00:00
6748f10d5d ENH: Lagrangian - added particle output to stream functions 2019-12-09 23:21:53 +00:00
31aad2159f STYLE: writeFile - renamed writeTime to writeCurrentTime to avoid conflicts 2019-09-09 09:19:38 +01:00
1310e85225 ENH: support 'get()' for retrieving argList options
- previously only had 'opt<..>()' for options, but 'get<..>()'
  provides more similarity with dictionary methods.
  The 'opt<..>()' method is retained.
2019-11-26 21:07:11 +01:00
98467036b3 STYLE: regularize quoting and exit on failed 'cd' 2019-11-13 13:19:16 +01:00
ec7e3c88e4 ENH: test for WM_PROJECT_DIR being set/unset in scripts 2019-11-06 09:18:51 +01:00
fdf8d10ab4 Merge commit 'e9219558d7' into develop-v1906 2019-12-05 11:47:19 +00:00
e9219558d7 GIT: Header file updates 2019-10-31 14:48:44 +00:00
9f11d892f5 ENH: Update of alphaBoiling BC, Bromley and tutorial 2019-10-28 12:30:53 -07:00
92f288ca36 BUG: Correcting issue 1441. Reading cAlphas entry for multiphase 2019-09-27 14:24:05 -07:00
38b53e5346 STYLE: use default destructor in header definitions 2019-09-24 12:14:36 +02:00
785241178f BUG: Correct div(u*p) for Teqn in compressibleInterFoam .Gitlab 1400. 2019-08-21 11:34:18 -07:00
de487f0f0a STYLE: improve some descriptions (#1405) 2019-08-22 12:28:04 +02:00
d96ad1cd09 ENH: Add components to allow overset with multiple motion solvers
1) Add softWall rigidBody restrain
2) Add linearSpringDamper sixDoF restrain to work as soft rope
3) dynamicMotionSolverListFvMesh changed to dictionary based input
4) Add Time reference access to sixDof restraints
5) Add drivenLinearMotion to solidBodyMotionFunctions.
2019-08-16 11:27:59 -07:00
b86f9944d7 ENH: handle some miscellaneous mixed input types (#1378) 2019-08-06 16:57:29 +02:00
7b2931272f ENH: potentialFoam - phi output now controlled by the -writephi command line option 2019-08-05 09:49:18 +01:00
b0d32ce1b4 STYLE: use 'operator>>' instead of readLabel and readScalar 2019-07-30 14:52:46 +02:00
743311df7d STYLE: consistent access for particle sizeofFields, particle iterators 2019-07-30 14:22:56 +02:00
3d0ed07fff DEFEATURE: remove particle PropertyTypes (revert of #109)
- data types were used for initial adios interface, but this proved
  difficult to manage and maintain.
2019-07-30 11:47:46 +02:00
f94be1bebb ENH: use FatalIOErrorInLookup instead of FatalErrorInLookup 2019-07-16 10:26:51 +02:00
fb09f56aba ENH: use FatalErrorInLookup macros (#1362) 2019-07-12 18:00:00 +02:00
5788fe056c STYLE: missing -postProcess option on basic solvers (#1375) 2019-07-16 12:09:00 +02:00
ba3f0734c0 ENH: added FatalErrorInLookup, FatalIOErrorInLookup macros (#1362)
- to simplify/unify error handling

STYLE: use NotImplemented instead of longer notImplemented(...)
2019-07-12 18:00:00 +02:00
be44dcaf1f RELEASE: Version clean-up for release 2019-06-25 11:51:19 +01:00
51bb4e0037 STYLE: remove trailing spaces 2019-06-26 11:36:49 +02:00
d286951008 BUG: Fix thermos templates for Lee model 2019-06-25 08:50:07 -07:00
1bd2ef7c21 ENH: Adding Lee thermos for icoReactingMultiphaseInterFoam 2019-06-24 08:12:58 -07:00
8e3df10069 STYLE: overBuoyantPimpleDyMFoam: consistent directory naming 2019-06-20 10:26:24 +01:00
ecc1fb5efb CONTRIB: New adjoint optimisation and tools
A set of libraries and executables creating a workflow for performing
gradient-based optimisation loops. The main executable (adjointOptimisationFoam)
solves the flow (primal) equations, followed by the adjoint equations and,
eventually, the computation of sensitivity derivatives.

Current functionality supports the solution of the adjoint equations for
incompressible turbulent flows, including the adjoint to the Spalart-Allmaras
turbulence model and the adjoint to the nutUSpaldingWallFunction, [1], [2].

Sensitivity derivatives are computed with respect to the normal displacement of
boundary wall nodes/faces (the so-called sensitivity maps) following the
Enhanced Surface Integrals (E-SI) formulation, [3].

The software was developed by PCOpt/NTUA and FOSS GP, with contributions from

Dr. Evangelos Papoutsis-Kiachagias,
Konstantinos Gkaragounis,
Professor Kyriakos Giannakoglou,
Andy Heather

and contributions in earlier version from

Dr. Ioannis Kavvadias,
Dr. Alexandros Zymaris,
Dr. Dimitrios Papadimitriou

[1] A.S. Zymaris, D.I. Papadimitriou, K.C. Giannakoglou, and C. Othmer.
Continuous adjoint approach to the Spalart-Allmaras turbulence model for
incompressible flows. Computers & Fluids, 38(8):1528–1538, 2009.

[2] E.M. Papoutsis-Kiachagias and K.C. Giannakoglou. Continuous adjoint methods
for turbulent flows, applied to shape and topology optimization: Industrial
applications. 23(2):255–299, 2016.

[3] I.S. Kavvadias, E.M. Papoutsis-Kiachagias, and K.C. Giannakoglou. On the
proper treatment of grid sensitivities in continuous adjoint methods for shape
optimization. Journal of Computational Physics, 301:1–18, 2015.

Integration into the official OpenFOAM release by OpenCFD
2019-06-17 12:59:11 +01:00
f0a4f8ee48 COMP: skip reactingEulerFoam compilation on mingw (#1238)
- pending resolution of cyclic dependencies
2019-06-14 13:58:37 +02:00
7322f73a31 Merge branch 'feature-isoAdvectorWithMorphingMeshes' into 'develop'
Introduced changes required to make isoAdvector and interIsoFoam work with...

See merge request Development/OpenFOAM-plus!257
2019-06-13 21:35:20 +01:00
da07aa9ac0 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-13 12:13:04 -07:00
50cdddf46a ENH: New solidThermo to ReactingMultiphaseInterFoam 2019-06-13 12:11:09 -07:00
e716d1c073 ENH: surfactantFoam: run cleanly. See #1328
- do not write 0/ directory
- clean case in ./Allclean
2019-06-13 14:24:58 +01:00
b1563dc03e ENH: Handling of phaseProperties in temperatureCoupledBase.
Adding poly solid thermo to InterfaceCompositionModel for use
on icoReactingMultiphaseInterFoam
2019-06-12 10:35:49 -07:00
3a1178ff12 BUG: Fixing problem with parallel DTRMParticle 2019-06-11 16:12:36 -07:00
8170f2ad92 INT: Org integration of VOF, Euler phase solvers and models.
Integration of VOF MULES new interfaces. Update of VOF solvers and all instances
of MULES in the code.
Integration of reactingTwoPhaseEuler and reactingMultiphaseEuler solvers and sub-models
Updating reactingEuler tutorials accordingly (most of them tested)

New eRefConst thermo used in tutorials. Some modifications at thermo specie level
affecting mostly eThermo. hThermo mostly unaffected

New chtMultiRegionTwoPhaseEulerFoam solver for quenching and tutorial.

Phases sub-models for reactingTwoPhaseEuler and reactingMultiphaseEuler were moved
to src/phaseSystemModels/reactingEulerFoam in order to be used by BC for
chtMultiRegionTwoPhaseEulerFoam.

Update of interCondensatingEvaporatingFoam solver.
2019-06-07 09:38:35 +01:00
24371a1d84 BUG: set the oriented flag - see #1324 2019-06-05 14:12:51 +01:00
289a7acf76 ENH: p field for potentialFoam now registsered 2019-06-05 14:11:50 +01:00
61c87b5552 Introduced changes required to make isoAdvector and interIsoFoam work with morphing meshes: 1) In the alphaEqn.H U is made relative to mesh motion before the interface advection step, 2) in isoAdvection::advect() alpha must be multiplied by Vsc0()/Vsc(). Implementation tested and verified with 1) a spherical interface in a cubic domain with no flow, where the domain walls are squeezed together and 2) a spherical interfacee inside the sloshingCylinder, again with no flow, so the sphere should stay spherical, which it does. 2019-04-30 16:07:48 +02:00
5c58b07f5a ENH: Adding overBuoyantPimpleFoam and tutorial 2019-06-04 12:18:13 -07:00
2eeaa326d6 Revert "COMP: combine twoPhaseProperties library into interfaceProperties"
Modified revert of commit 6c6f777bd5.

- The "alphaContactAngleFvPatchScalarField" occurs in several
  places in the code base:

    - as abstract class for two-phase properties
    - in various multiphase solvers

  To resolve potential linking conflicts, renamed the abstract class
  as "alphaContactAngleTwoPhaseFvPatchScalarField" instead.

  This permits potential linking of two-phase and multi-phase
  libraries without symbol conflicts and has no effect on concrete
  uses of two-phase alphaContactAngle boudary conditions.
2019-05-08 18:48:52 +02:00
25575df60e ENH: new ReactingHeterogeneousCloud
- number of particles per parcel info to kinematic cloud

- added turbulent dispersion to basicHeterogeneousReactingParcel

- corrected dhsTrans in MUCSheterogeneousRate::calculate

- added cloud macro system to reactingParcelFoam and fixed calculation
  of average particles per parcel

- added progress variable dimension to reacting model (nF)

- added ReactingHeterogeneous tutorial
2019-01-04 17:08:53 -08:00
659526101a ENH: Adding reflection capability to solar load radiation model
ENH: Several modifycations to avoid erroneuos rays to be shot
from wrong faces.

ENH: Updating tutorials and avoiding registration of the
coarse singleCellFvMesh

Adding solarLoad tutorial case simpleCarSolarPanel

ENH: Changes needed for the merge
2019-01-21 16:29:58 -08:00
e7a046858e COMP: avoid some implicit linkage (#1238) 2019-04-30 11:28:23 +02:00
d8e8306bbc BUG: interIsoFoam nAlphaSubCycles, nOuterCorrectors issue (fixes #1300)
- failed when nAlphaSubCycles > 1 and nOuterCorrectors > 1.
  Fixed thanks to Henning Scheufler (DLR Bremen).
2019-04-30 10:59:32 +02:00