3 research outputs found

    Numerical simulation of non-Newtonian fluid flow in mixing geometries

    Get PDF
    In this thesis, a theoretical investigation is undertaken into fluid and mixing flows generated by various geometries for Newtonian and non-Newtonian fluids, on both sequential and parallel computer systems. The thesis begins by giving the necessary background to the mixing process and a summary of the fundamental characteristics of parallel architecture machines. This is followed by a literature review which covers accomplished work in mixing flows, numerical methods employed to simulate fluid mechanics problems and also a review of relevant parallel algorithms. Next, an overview is given of the numerical methods that have been reviewed, discussing the advantages and disadvantages of the different methods. In the first section of the work the implementation of the primitive variable finite element method to solve a simple two dimensional fluid flow problem is studied. For the same geometry colour band mixing is also investigated. Further investigational work is undertaken into the flows generated by various rotors for both Newtonian and non-Newtonian fluids. An extended version of the primitive variable formulation is employed, colour band mixing is also carried out on two of these geometries. The latter work is carried out on a parallel architecture machine. The design specifications of a parallel algorithm for a MIMD system are discussed, with particular emphasis placed on frontal and multifrontal methods. This is followed by an explanation of the implementation of the proposed parallel algorithm, applied to the same fluid flow problems as considered earlier and a discussion of the efficiency of the system is given. Finally, a discussion of the conclusions of the entire accomplished work is presented. A number of suggestions for future work are also given. Three published papers relating to the work carried out on the transputer networks are included in the appendices

    Exploiting structure in integer programs

    No full text
    The thesis argues the case for exploiting certain structures in integer linear programs. Integer linear programs are optimisation problems, where one minimises or maximises a linear function of variables, whose values are required to be integral as well as satisfying certain linear equalities and inequalities. For such an abstract problem, there are very good general-purpose solvers. The state of the art in such solvers is an approach known as “branch and bound”. The performance of such solvers depends crucially on four types of in-built heuristics: primal, improvement, branching, and cut-separation or, more generally, bounding heuristics. However, such heuristics have, until recently, not exploited structure in integer linear programs beyond the recognition of certain types of single-row constraints. Many alternative approaches to integer linear programming can be cast in the following, novel framework. “Structure” in any integer linear program is a class of equivalence among triples of algorithms: deriving combinatorial objects from the input, adapting them, and transforming the adapted object to solutions of the original integer linear program. Many such alternative approaches are, however, inherently incompatible with branch and bound solvers. We, hence, define a structure to be “useful”, only when it extracts submatrices, which allow for the implementation of more than one of the four types of heuristics required in the branch and bound approach. Although the extraction of the best possible submatrices is non-trivial, the lack of a considerable submatrix with a given property can often be recognised quickly, and storing useful submatrices in a “pool” makes it possible to use them repeatedly. The goal is to explore whether the state-of-the-art solvers could make use of the structures studied in the academia. Three examples of useful structures in integer linear programs are presented. A particularly widely applicable useful structure relies on the aggregation of variables. Its application can be seen as a decomposition into three stages: Firstly, we partition variables in the original instance into as small number as possible of support sets of constraints forcing convex combinations of binary variables to be less than or equal to one in the original instance, and one-element sets. Secondly, we solve the “aggregated” instance corresponding to the partition of variables. Under certain conditions, we obtain a valid lower bound. Finally, we fix the solution of the aggregated instance in primal and improvement heuristics for the original instance, and use the partition in hyper-plane branching heuristics. Under certain conditions, the primal heuristics are guaranteed to find a feasible solution to the original instance. We also present structures exploiting mutual-exclusion and precedence constraints, prevalent in scheduling and timetabling applications. Mutual exclusion constraints correspond to instances of graph colouring. For numerous extensions of graph colouring, there are natural primal and branching heuristics. We present lower bounding heuristics for extensions of graph colouring, based on augmented Lagrangian methods for novel semidefinite programming relaxations, and reformulations based on a novel transformation of graph colouring to graph multicolouring. Precedence constraints correspond to an instance of precedence-constrained multi-dimensional packing. For such packing problems, we present heuristics based on an adaptive discretisation and strong discretised linear programming relaxations. On in- stances of packing unit-cubes into a box, the reformulation makes it possible to solve instances that are by five orders of magnitude larger than previously. On instances from complex timetabling problems, which combine mutual- exclusion and packing constraints, the combination of heuristics above can often result in the gap between primal and dual bounds being reduced to under five percent, orders of magnitude faster than using state of the art solvers, without any information being used that is outside of the instance
    corecore