Commit Graph

28 Commits

Author SHA1 Message Date
673e0d1704 fireFoam: Added optional hydrostatic initialization of the pressure and density
Also added the new prghTotalHydrostaticPressure p_rgh BC which uses the
hydrostatic pressure field as the reference state for the far-field
which provides much more accurate entrainment is large open domains
typical of many fire simulations.

The hydrostatic field solution is controlled by the optional entries in
the fvSolution.PIMPLE dictionary, e.g.

    hydrostaticInitialization yes;
    nHydrostaticCorrectors 5;

and the solver must also be specified for the hydrostatic p_rgh field
ph_rgh e.g.

    ph_rgh
    {
        $p_rgh;
    }

Suitable boundary conditions for ph_rgh cannot always be derived from
those for p_rgh and so the ph_rgh is read to provide them.

To avoid accuracy issues with IO, restart and post-processing the p_rgh
and ph_rgh the option to specify a suitable reference pressure is
provided via the optional pRef file in the constant directory, e.g.

    dimensions      [1 -1 -2 0 0 0 0];
    value           101325;

which is used in the relationship between p_rgh and p:

    p = p_rgh + rho*gh + pRef;

Note that if pRef is specified all pressure BC specifications in the
p_rgh and ph_rgh files are relative to the reference to avoid round-off
errors.

For examples of suitable BCs for p_rgh and ph_rgh for a range of
fireFoam cases please study the tutorials in
tutorials/combustion/fireFoam/les which have all been updated.

Henry G. Weller
CFD Direct Ltd.
2016-04-23 10:04:39 +01:00
77b03e2e0c Specialized dotInterpolate for the efficient calculation of flux fields
e.g. (fvc::interpolate(HbyA) & mesh.Sf()) -> fvc::flux(HbyA)

This removes the need to create an intermediate face-vector field when
computing fluxes which is more efficient, reduces the peak storage and
improved cache coherency in addition to providing a simpler and cleaner
API.
2016-04-06 20:20:53 +01:00
fc2ce73723 Solvers: Added support for extrapolated pressure boundary conditions
The boundary conditions of HbyA are now constrained by the new "constrainHbyA"
function which applies the velocity boundary values for patches for which the
velocity cannot be modified by assignment and pressure extrapolation is
not specified via the new
"fixedFluxExtrapolatedPressureFvPatchScalarField".

The new function "constrainPressure" sets the pressure gradient
appropriately for "fixedFluxPressureFvPatchScalarField" and
"fixedFluxExtrapolatedPressureFvPatchScalarField" boundary conditions to
ensure the evaluated flux corresponds to the known velocity values at
the boundary.

The "fixedFluxPressureFvPatchScalarField" boundary condition operates
exactly as before, ensuring the correct flux at fixed-flux boundaries by
compensating for the body forces (gravity in particular) with the
pressure gradient.

The new "fixedFluxExtrapolatedPressureFvPatchScalarField" boundary
condition may be used for cases with or without body-forces to set the
pressure gradient to compensate not only for the body-force but also the
extrapolated "HbyA" which provides a second-order boundary condition for
pressure.  This is useful for a range a problems including impinging
flow, extrapolated inlet conditions with body-forces or for highly
viscous flows, pressure-induced separation etc.  To test this boundary
condition at walls in the motorBike tutorial case set

    lowerWall
    {
        type            fixedFluxExtrapolatedPressure;
    }

    motorBikeGroup
    {
        type            fixedFluxExtrapolatedPressure;
    }

Currently the new extrapolated pressure boundary condition is supported
for all incompressible and sub-sonic compressible solvers except those
providing implicit and tensorial porosity support.  The approach will be
extended to cover these solvers and options in the future.

Note: the extrapolated pressure boundary condition is experimental and
requires further testing to assess the range of applicability,
stability, accuracy etc.

Henry G. Weller
CFD Direct Ltd.
2016-02-13 17:48:26 +00:00
c3ee2348a6 MRF: Separate MRF from fvOptions
fvOptions does not have the appropriate structure to support MRF as it
is based on option selection by user-specified fields whereas MRF MUST
be applied to all velocity fields in the particular solver.  A
consequence of the particular design choices in fvOptions made it
difficult to support MRF for multiphase and it is easier to support
frame-related and field related options separately.

Currently the MRF functionality provided supports only rotations but
the structure will be generalized to support other frame motions
including linear acceleration, SRF rotation and 6DoF which will be
run-time selectable.
2015-05-29 23:35:43 +01:00
d9eb18adbc pEqn: DO NOT constrain the pressure equation as this will lead to continuity errors 2015-02-12 10:42:17 +00:00
08baa6eda6 fixedFluxPressure BC: the snGrad is now pushed into the BC from pEqn.H rather than being evaluated in the BC 2013-09-11 00:10:00 +01:00
51f085faa5 Rewrite of ddtPhiCorr - ddtCorr and density-weight HbyA on compressible solvers.
For DyM solvers phiAbs is replaced by Uf but this conversion is currently not complete
2013-09-09 12:41:20 +01:00
046f740f0e Renamed relativeFlux -> makeRelative and absoluteFlux -> makeAbsolute 2013-08-20 15:40:00 +01:00
d2b84dc511 ENH: Updated fieldSources->fvOptions for solvers 2013-01-08 09:38:01 +00:00
b5d1ab435d ENH: Updated solver run-time selectable sources 2012-12-06 15:08:52 +00:00
b2252f36b1 ENH: Added run-time selectable sources to combustion solvers 2012-12-06 12:05:45 +00:00
8609c83645 Thermodynamics: Initialized dpdt to 0 and added a switch on update
so that the effect of the term on the enthalpy equation is optional
2012-09-13 11:25:55 +01:00
b94d46d0e7 multiphase and fireFoam: set phi based on the interpolated U before the pEqn construction for the p BCs 2012-08-02 15:29:08 +01:00
5f886ce3d6 fireFoam: Update the phi boundary field for consistency 2012-07-30 12:36:22 +01:00
28762dc468 Removed trailing whitespace 2012-04-19 14:17:30 +01:00
70595a9a61 Buoyant solvers: changed the sign of phig to be consistent with the sign of the buoyancy force on the RHS of UEqn 2012-04-19 10:08:59 +01:00
912a20b7a3 ENH: Propagated caching of HbyA across solvers 2012-03-02 18:15:54 +00:00
96068a670d Thermodynamics: Changed h-eqn to conserve total energy 2011-11-22 17:54:13 +00:00
d05c5a41a1 ENH: Updated PIMPLE solvers to new pimpleControl framework 2011-10-26 12:04:25 +01:00
0f20e65f6f STY: change from reactingParcelsFilPyrosysisFoam to fireFoam 2011-06-06 17:55:27 +01:00
656bbf5308 ENH: Updated solvers to use simpleControl and pimpleControl 2011-04-14 17:45:20 +01:00
fb11f37e38 ENH: Propagating pimpleControl across pimple-based solvers 2011-04-13 17:20:29 +01:00
5b4cd73e55 PIMPLE: Rationalised loop structure
Automated the caching of "finalIteration".
2011-03-26 21:48:15 +00:00
c5ee4e1b04 COMP: avoid ambiguous construct from tmp - solvers/ combustion 2010-12-21 09:49:34 +01:00
eb51614780 Renamed rUA -> rAU 2010-10-11 20:10:34 +01:00
9ad02ff740 fireFoam: Updated solver and tutorials from OpenFOAM-1.7.x 2010-10-08 22:50:58 +01:00
361b153343 Final iteration information now available in mesh::data (used to be mesh::fvData)
Relaxation and solution parameters for the final iteration in PIMPLE loops are
now selected according to the value of the "finalIteration" entry in the
mesh::data dictionary.

rhoPimpleFoam significantly updates and now replaces rhoPisoFoam.
2010-05-25 18:45:25 +01:00
3ed23da4fe New solver: fireFoam
For non-premixed combustion using sensible enthalpy.
2010-02-10 19:09:24 +00:00