DIOGENeS · nanophotonics software from Inria
Simulate light. Optimise designs.
DIOGENeS is Inria's software for the numerical simulation and optimisation of nanophotonic devices. It solves Maxwell's equations in full 3D, on meshes that follow every detail of a design, and searches the design space for the version that works best — before anything is made.
How it simulates
From the mesh up.
A design is meshed into tetrahedra that follow its geometry, and Maxwell's equations are solved in every cell with a high-order discontinuous Galerkin method — in time, or one frequency at a time.
-
1
Tetrahedra that follow every wall
The geometry is meshed as it is drawn: 8,734 cells on this one plane, fine in the silicon, coarse in the cladding, no staircase on a sidewall.
-
2
A polynomial inside every cell
Each tetrahedron carries a polynomial of degree 3 or 4 — 20 or 35 nodes per field component. Raising the degree cuts the error by orders of magnitude.
-
3
Cells that talk through their faces
Neighbouring cells exchange only fluxes across shared faces. The work stays local, splits cleanly over hundreds of cores, and the degree can change from cell to cell.
-
4
Time domain or frequency domain
One time-domain run follows a pulse and returns every wavelength it carries; the frequency-domain solver works one wavelength at a time with a direct solver. The two agree to a few parts in ten thousand.
The software
Geometry, solvers, analysis, optimisation.
DIOGENeS is a set of components developed by the Atlantis team at Inria since 2015 — modern Fortran, MPI, OpenACC and Python. Together they take a device from its drawing to its best design.
- GFactoryGeometry & meshParametric devices on the gmsh Python API; curved tetrahedra on true surfaces.
- DGTDTime-domain solverExplicit high-order discontinuous Galerkin, with a GPU version since 2025.
- HDGFDFrequency-domain solverHybridisable discontinuous Galerkin with a direct solver and domain decomposition.
- ObserverAnalysisFluxes, reflection, transmission, absorption, mode overlaps, diffraction orders, fields.
- OptimOptimisationBayesian optimisation that drives the solvers, with surrogate models.
Real materials
Dispersive models fitted to measured data (Drude, Drude–Lorentz, multi-pole), nonlocal models for metals at the nanometre scale.
Open or periodic
Perfectly matched layers, mirror symmetries that halve or quarter a simulation, periodic cells at oblique incidence.
The right source
Plane waves and beams, guided modes injected and projected back, dipoles for quantum emitters, electron beams.
Checked, not trusted
Energy balance on a closed box, convergence in the polynomial degree, time and frequency domain held against each other.
Applications
Nanophotonic and quantum devices.
Waveguides, splitters, couplers and single-photon sources from integrated and quantum photonics — each one simulated in full 3D. Select a case to see its computed field.
Ez for the two quantum-dot sources: their dipole lies along z.
Optimisation
Let the simulations find the design.
Every point of a design space is a full simulation. DIOGENeS-Optim fits a statistical model to the simulations done so far, and decides which design to simulate next.
The objective here is illustrative; in a real campaign every point is a DIOGENeS simulation of the design. The same loop handles several objectives at once, fabrication tolerances, and simulations run in parallel batches.
Photovoltaics
Trapping light in thin films.
A thinner absorber costs less, but lets the red light through. A textured interface bends it sideways and keeps it inside. DIOGENeS simulates textured multilayer cells and returns the light absorbed in every layer — and the current it can produce.
Flat or random texture
Through a flat film, red light makes two passes and leaves. A random texture scatters it sideways, past the angle of total internal reflection: it bounces until it is absorbed. Each block is one period of the film; the glow on its cut faces is where the red light is absorbed.
From absorption to current
The absorption computed in the active layer, wavelength by wavelength, gives the photocurrent under the standard solar spectrum:
Jsc = qhc ∫ A(λ) ΦAM1.5G(λ) λ dλ
Colour & appearance
From microstructure to appearance.
The look of a paint, a coating or a pigment comes from light scattering among countless particles. DIOGENeS simulates it on periodic cells of random particle packings, and reads the colour from the computed spectrum.
A random packing, in a periodic cell
Particles are placed at random, never touching, in a cell that repeats sideways: a particle cut by one face comes back in through the opposite one.
Larger cells, until it converges
The cell is enlarged — wider, period after period, and deeper — until the computed spectrum no longer changes: the size at which one random cell stands for the whole film.
Light in, colour out
White light enters at an angle and scatters. The longer it wanders among the particles, the more of its reds and greens are absorbed: what comes back out of the top is blue — that light is the colour. Some leaves through a side and comes back in through the opposite one; some crosses the whole film.
Much deeper, until no light gets through
A real coating is many particles deep. The cell is made deeper still — six times, here — until hardly any light crosses it: what comes back out of the top no longer changes, and neither does the colour.
From spectrum to colour
What the simulation returns is a spectrum: how much light comes back, wavelength by wavelength. Seen by the eye in daylight it is a colour — the one the sample is rendered in.
Illustrative spectrum, not a measured one. Colour by the CIE 1931 observer under D65 daylight.
Have a design in mind?Let's simulate it.
DIOGENeS is developed by the Atlantis project-team at the Inria centre at Université Côte d'Azur, with CNRS. We work with academic and industrial partners in collaborative projects.