Conference Papers Database New search

OPTIMISING A ONE MILLION BLOCK GRID FOR A TVZ FLOW MODEL

M. Letourneur, D. Dempsey, J. OSullivan, A. Croucher, M. OSullivan

Key words
Optimisation, unstructured grids, finite volume, orthogonality, flow models, minimisation, objective function, Waiwera
Conference
New Zealand Geothermal Workshop
Year
2018
Session
Session 1.1 Reservoir Modelling
Language
English
Paper number
45

Full text

1204KB, opens in a new tab

Abstract

The recently developed multiphase geothermal flow simulator, Waiwera, is now able to handle unstructured grids. However, to reduce errors related to the grid, certain quality factors should be optimised. In applying the finite volume method, Waiwera assumes that for each pair of neighbouring tetrahedral cells the line connecting their centroids is perfectly orthogonal to their shared interface. Any deviation from orthogonality will introduce an error in the flow simulation. Our work aims to optimize a given grid so as to minimise departures from orthogonality as much as possible. Our algorithm is written in Python. It uses the MeshIO library to read and write various formats of mesh files, and the SciPy library for optimisation algorithms. Our approach is to minimise the sum of all deviations from orthogonality within the mesh. The inputs are the node coordinates and connectivity and any surface constraints (e.g., model boundaries, faults). Then, our algorithm moves the nodes around in space in an attempt to minimise deviations from orthogonality.
Several challenges were addressed in developing the optimisation algorithm. First, we require that some nodes should be constrained to move only along boundaries (model edges, topography, faults) so that geometric features honoured by the original mesh are not altered. This reduces a node’s degrees of freedom from 3 – the number of coordinate directions - to (3 – n), where n is the number of boundaries the node lies on. As a result, the algorithm can handle plane and complex boundaries (including faults and topography), intersections between planes and between a plane and a complex surface.
Second, we aimed to minimise the running time of the algorithm so that the approach is practical for full-sized meshes (up to one million blocks). This included implementing and passing analytical Jacobians to the optimiser, and the use of multiprocessing to subdivide and parallelise optimisation of mesh subsections. The mesh is divided into m sets of disjoint (non-overlapping, non-adjacent) node clusters, where

Copyright 2018, University of Auckland. Readers who download papers from this site should honour the copyright of the original authors, and may not copy or distribute the work further without the permission of the original publisher.

You have opened 0 records today from 216.73.216.139 (216.73.216.139).
Viewed 26 September 2026, 7:54 am.