- Feb 18, 2020
-
-
- replaces floating-point equal comparisons in `linearEqn`, `quadraticEqn`, and `cubicEqn`, - ensures `quadraticEqn` and `cubicEqn` can return `complex` roots, - reorders if-branches in `quadraticEqn` and `cubicEqn` to avoid zero-equal comparison, - adds Kahan's cancellation-avoiding algorithm into `quadraticEqn` and `cubicEqn` for the numerically-sensitive discriminant computation, - adds/improves `polynomialEqns` tests: * adds Test-linearEqn.C * adds Test-quadraticEqn.C * improves Test-cubicEqn.C
-
- includes restructuring and simplification of low-level ensight part handling and refactor of backends to improve code reuse. foamToEnsight ------------- * new cellZone support. This was previously only possible via a separate foamToEnsightParts utility that was not parallelized. * support for point fields. * `-nearCellValue` option (as per foamToVTK) * data indexing now uses values from the time index. This is consistent with the ensightWrite function object and can help with restarts. * existing ensight directories are removed, unless the -no-overwrite option is supplied foamToEnsightParts ------------------ * now redundant and removed. ensightOutputSurface (new class) -------------------------------- * a lightweight wrapper for point/face references that is tailored for the ensightSurfaceWriter. It uses compact face/point information and is serial only, since this is the format requirements from the surfaceWriter class. ensightMesh (revised class) --------------------------- * now only holds a polyMesh reference, which removes its dependency on finiteVolume and allows it to be relocated under fileFormats instead of conversion. Removed classes: ensightParts, ensighPartFaces, ensightPartCells - these were used by foamToEnsightParts, but not needed anymore.
-
- Feb 12, 2020
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- simplifies code, covers most cases. Can use wmake -show-api or wmakeBuildInfo to query the make rules. STYLE: Allwmake script adjustments - use bin/foamEtcFile instead of relying on PATH. The make environment may not have the OpenFOAM bin/ in it. - simpler shell syntax
-
mattijs authored
-
- Feb 06, 2020
-
-
mattijs authored
-
Mark OLESEN authored
-
- Jan 31, 2020
-
-
Mark OLESEN authored
-
Mark OLESEN authored
- provides an indirect access to a sub-section of a list that is somewhat less efficient than a Foam::SubList, but supports the following: * adjustment of its addressing range after construction * recovery of the original, underlying list at any time This can be more convenient for some coding cases. For example, template<class Addr> void renumberFaces(IndirectListBase<face, Addr>& faces, ...); which can be called for * Specific faces: UIndirectList<face>(mesh.faces(), facesToChange) * A sub-range of faces: IndirectSubList<face>(mesh.faces(), pp.range()) * All faces: IndirectSubList<face>(mesh.faces()) CONFIG: added IndirectListsFwd.H with some common forwarding
-
- Jan 29, 2020
-
-
Kutalmış Berçin authored
- refactors the corresponding tutorial by removing redundant files and items: compressible/rhoCentralFoam/biconic25-55Run35
-
- Jan 28, 2020
-
-
Mark OLESEN authored
-
Mark OLESEN authored
-
- Jan 23, 2020
-
-
Mark OLESEN authored
-
- Jan 21, 2020
-
-
Mark OLESEN authored
COMP: use generated methods in a few more places
-
- Jan 16, 2020
-
-
Mark OLESEN authored
- consistent way of writing "patch" + Foam::name(id) etc.
-
Mark OLESEN authored
- remove (unused) Istream constructors, prune some unused methods, rationalize write() vs writeDict(). Deprecate inconsistent construction order. - handle empty names for ".ftr" surface patches (for plain triSurface format) with double-quoted strings for more reliable streaming. Written on a single line. This is _backward_ compatible, but if users have been parsing these files manually, they will need to adjust their code. Previously: ``` ( frt-fairing:001%1 empty windshield:002%2 empty ... ) ``` Updated (with example handling of empty name): ``` ( frt-fairing:001%1 empty windshield:002%2 "" ... ) ```
-
- Jan 22, 2020
-
-
OpenFOAM bot authored
-
- Jan 16, 2020
-
-
- Jan 06, 2020
- Jan 03, 2020
-
-
The controlBoxes wordList was removed from NURBS3DVolume in the pre-release phase but writeMorpherCPs was not updated accordingly. TUT: added the invocation of writeMorpherCPs in one of the tutotials to help identify future regression
-
- Dec 23, 2019
-
-
Andrew Heather authored
-
- Dec 19, 2019
-
-
Mark OLESEN authored
Many possibilities: - use as a simple calculator with vectors, tensors etc. - test validity of expression syntax As a calculator: foamCalc '(vector(1,2,3) ^ vector(4,5,6)) * sqrt(34)' The same, but with debugging: foamCalc -debug-switch fieldExpr=6 \ 'mag((vector(1,2,3) ^ vector(4,5,6))) * sqrt(34)'
-
-
1) New skewCorrectedSnGrad for non-orthogonal and skewness corrector 2) New freeSurfacePressure and freeSurfacePressure working with interfaceTrackingFvMesh 3) New interfaceTrackingFvMesh
-
Mark OLESEN authored
- now use debug 2 for scanner and debug 4 for parser. Provided better feedback about what is being parsed (debug mode) - relocate debug application to applications/tools/foamExprParserInfo
-
- Dec 18, 2019
-
-
mattijs authored
-
- Dec 17, 2019
-
-
1) rPolynomial Eq of State 2) externalForce and softWall in rigidBodyDynamics INT: Several minor bug fixes plus
-
Mark OLESEN authored
- follows the principle of least surprise if the expansion behaviour for #eval and expressions (eg, exprFixedValue) are the same. This is possible now that we harness the regular stringOps::expand() within exprString::expand()
-
- Dec 16, 2019
-
-
Mark OLESEN authored
- the PDRsetFields utility processes a set of geometrical obstructions to determine the equivalent blockage effects. These fields are necessary inputs for PDRFoam calculations. After setting up the geometries, the -dry-run option can be used to generate a VTK file for diagnosis and post-processing purposes. - this is an initial release, with improvements slated for the future. NOTE - the field results may be less than fully reliable when run in single-precision. This howver does not represent a realistic restriction since the prepared fields target a combustion application which will invariably be double-precision.
-
Mark OLESEN authored
- remove unused local functions from volumeExprDriver
-
- Dec 14, 2019
-
-
Mark OLESEN authored
-
- Dec 13, 2019
-
-
Mark OLESEN authored
- reuse more of stringOps expansions to reduce code and improve the syntax flexiblity. We can now embed "pre-calculated" values into an expression. For example, angle 35; valueExpr "vector(${{cos(degToRad($angle))}}, 2, 3)"; and the ${{..}} will be evaluated with the regular string evaluation and used to build the entire expression for boundary condition evaluation. Could also use for fairly wild indirect referencing: axis1 (1 0 0); axis2 (0 1 0); axis3 (0 0 1); index 100; expr "$[(vector) axis${{ ($index % 3) +1 }}] / ${{max(1,$index)}}";
-
Mark OLESEN authored
-
Mark OLESEN authored
- finds beg/end indices of string trimmed of leading/trailing whitespace
-
Mark OLESEN authored
-
- Dec 12, 2019
-
-
Vaggelis Papoutsis authored
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
-
Kutalmış Berçin authored
QRMatrix (i.e. QR decomposition, QR factorisation or orthogonal-triangular decomposition) decomposes a scalar/complex matrix \c A into the following matrix product: \verbatim A = Q*R, \endverbatim where \c Q is a unitary similarity matrix, \c R is an upper triangular matrix. Usage Input types: - \c A can be a \c SquareMatrix<Type> or \c RectangularMatrix<Type> Output types: - \c Q is always of the type of the matrix \c A - \c R is always of the type of the matrix \c A Options for the output forms of \c QRMatrix (for an (m-by-n) input matrix \c A with k = min(m, n)): - outputTypes::FULL_R: computes only \c R (m-by-n) - outputTypes::FULL_QR: computes both \c R and \c Q (m-by-m) - outputTypes::REDUCED_R: computes only reduced \c R (k-by-n) Options where to store \c R: - storeMethods::IN_PLACE: replaces input matrix content with \c R - storeMethods::OUT_OF_PLACE: creates new object of \c R Options for the computation of column pivoting: - colPivoting::FALSE: switches off column pivoting - colPivoting::TRUE: switches on column pivoting Direct solution of linear systems A x = b is possible by solve() alongside the following limitations: - \c A = a scalar square matrix - output type = outputTypes::FULL_QR - store method = storeMethods::IN_PLACE Notes - QR decomposition is not unique if \c R is not positive diagonal \c R. - The option combination: - outputTypes::REDUCED_R - storeMethods::IN_PLACE will not modify the rows of input matrix \c A after its nth row. - Both FULL_R and REDUCED_R QR decompositions execute the same number of operations. Yet REDUCED_R QR decomposition returns only the first n rows of \c R if m > n for an input m-by-n matrix \c A. - For m <= n, FULL_R and REDUCED_R will produce the same matrices
-
Kutalmış Berçin authored
- query func `symmetric()` - query func `tridiagonal()` - `resize()` - `labelpair` identity constructor STYLE: add `#if(0 | RUNALL)` to improve test control in Test-Matrix
-
- Dec 11, 2019
-
-
- 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.
-