Skip Links | Internal | Site Map

You are here: Prof Andrew Binley's Homepage > cR2

cR3t version 1.0 May 2020

cR3t has been developed for imaging 3D complex resistivity (i.e. induced polarization) using arbitrary electrode arrays on the ground surface or in boreholes. cR3t is based on R3t, using complex numbers to represent conduction and polarization. cR3t will compute a forward model for a given distribution of complex resistivity (defined in terms of magnitude and phase angle). cR3t can also provide an inverse solution for a 3-D complex resistivity distribution using a finite element mesh based on either tetrahedral or triangular prism elements. The use of finite elements allows topography to be incorporated in the model. The inverse solution is based on a regularised objective function combined with weighted least squares (an 'Occams' type solution) as defined in Binley and Kemna (2005) and Binley (2015). A 64bit version for Intel compatible processors is provided in the download. Executables for other platforms are available from the author.The current version has no problem size limits.
The user must define the mesh for cR3t as a series of elements, each with either 4 nodes (tetrahedron) or 6 nodes (triangular prism). The user must also specify the position of the electrodes within the mesh. The electrodes can be located anywhere in the mesh, provided they fall on node points. Neumann (no current flow) boundary conditions are applied at the boundary of the mesh and so if a half-space is modelled then the mesh should be extended away from the region of interest to account for 'infinite' boundaries.
cR3t will output calculated parameters (resistivity magnitude and phase angle) for the entire mesh and the user must extract results for the region they wish to study. The region is parameterised in terms of complex resistivity blocks by grouping patches of elements.
Measurements are defined in a separate file as a set of four electrode indices. Each electrode is defined as a "string" number and an "electrode" number. Note that the "string" index is used simply to help group electrode strings (for example, surface lines of electrodes or boreholes); the "string" index can be the same for all electrodes if the user wishes not to use this labelling.
The current version will work with any size problem but the user should be careful about not setting up a problem that is too large for the memory (RAM) available. This is particularly relevant for inverse problems. Keep in mind that the size of the Jacobian (sensitivity) matrix, for example, is the number of measurements x the number of parameters (and each value will be stored as 16 bytes). cR3t will output the required memory at the start of execution of the code, but it is advisable to think about memory demands before the mesh is setup.
cR3t will output inverse models in x,y,z ASCII format suitable for plotting with third party software. cR3t also produces vtk formatted output allowing quick plotting with Paraview . cR3t also contains features allowing regularisation disconnect and zoning within the region of investigation.
In cR3t complex resistivity is defined by a magnitude and phase angle. The magnitude is equivalent to a DC resistivity since the phase angles are likely to be small. In an inversion, cR3t also computes the real and imaginary conductivity since these are more useful for analysis of the conduction and polarization of the subsurface. Data for cR3t are supplied in terms of magnitude and phase angle of the measured impedance.
It is strongly recommended that the user becomes familiar with inverting DC resistivity data with sister code R3t before working with cR3t. Many of the concepts about meshing, parameterisation are similar. It is also recommended that the user becomes familiar with inverting complex resistivity data with 2D sister code cR2 .

Download cR3t

Note that there is no installation script to run. The cR3t executable should be copied to a working folder and run from there. Examples are provided (see download below).
User guide (pdf)
Download cR3t program and guide ( .zip file)

ResIPy (formerly pyR2): NEW Python GUI for cR3t (and sister codes)

Guillaume Blanchy (formerly Lancaster), Sina Saneiyan (formerly Rutgers, now Oklahoma) and Jimmy Boyd (Lancaster) have developed ResIPy: a python GUI for cR3t and sister codes. The GUI is open source and standalone executables are available at the ResIPy gitlab site. More information is also available at the ResIPy ResearchGate site. See also Blanchy et al.(2020)


Binley, A., 2015, Tools and Techniques: DC Electrical Methods, In: Treatise on Geophysics, 2nd Edition, G Schubert (Ed.), Elsevier., Vol. 11, 233-259, doi:10.1016/B978-0-444-53802-4.00192-5. (available from the author on request).
Binley, A. and A. Kemna, 2005, Electrical Methods, In: Hydrogeophysics by Rubin and Hubbard (Eds.), 129-156, Springer
Blanchy, G., S. Saneiyan, J. Boyd, P. McLachlan and A. Binley, ResIPy, 2020, an intuitive open source software for complex geoelectrical inversion/modeling in 2D space, Computer & Geosciences, 137, doi:10.1016/j.cageo.2020.104423.