The analyse phase of a sparse direct solver for symmetrically structured linear systems of equations is used to determine the sparsity pattern of the matrix factor. This allows the subsequent numerical factorisation and solve phases to be executed efficiently. Many direct solvers require the system matrix to be in assembled form. For problems arising from finite element applications, assembling and then using the system matrix can be costly in terms of both time and memory. This paper describes and implements a variant of the work of Gilbert, Ng and Peyton for matrices in elemental form. The proposed variant works with an equivalent matrix that avoids explicitly assembling the system matrix and exploits supervariables. Numerical experiments using problems from practical applications are used to demonstrate the significant advantages of working directly with the elemental form.In this paper, our aim is to design and implement an efficient analyse phase that can be used in the development of modern sparse direct solvers. Our main interest is in element problems but we want to allow both matrices that are held in assembled form (input by columns) and in elemental form (input by elements). In each case, we want to exploit supervariables (columns of A with the same sparsity pattern) and we want to keep memory bandwidth to a minimum, while not compromising efficiency. Thus, our main contributions are the incorporation of supervariables into the Gilbert, Ng and Peyton [1] approach to the analyse phase for assembled problems and the design and implementation of an efficient analyse phase for elemental problems that avoids explicitly assembling the matrix pattern. Our new analyse phase is available within the HSL software library [2] as package HSL_MC78. We remark that, historically, the analyse phase was much faster than the factorisation phase. Considerable effort has gone into parallelizing the factorisation so that the gap between the times for the two phases has narrowed. It is therefore important that the analyse phase be implemented efficiently to prevent it from becoming a bottleneck.This paper is organised as follows. In the rest of this introduction, we introduce the terms and notation that we will use throughout the paper and we present our test problems and our test environment. Then, in Section 2, we summarise and briefly discuss key algorithms used within the analyse phase. Section 3 focuses on the case when A is in assembled form and looks at efficiently identifying supervariables, incorporating supervariables into constructing the elimination tree and into the column count algorithm of Gilbert, Ng and Peyton [1]; numerical results illustrate the potential savings resulting from exploiting supervariables. In Section 4, we consider how to handle problems in elemental form without explicitly assembling the sparsity pattern of A. Results for problems arising from finite-element applications are presented. Timings for the analyse phase of one of our sparse direct solvers that incorporates our new analyse code a...