> For the complete documentation index, see [llms.txt](https://anufrievroman.gitbook.io/solidocean/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anufrievroman.gitbook.io/solidocean/home.md).

# Home

<div align="left"><img src="https://1415921036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FchGCzofnfPNZnHXSRSK1%2Fuploads%2Fgit-blob-c365f291934c646447149cb2f8d216808151c0bc%2Ficon.png?alt=media" alt="" width="120"></div>

**SolidOcean** is a free and open-source finite element modelling tool for calculating and analysing phonon dispersion relations, mechanical waves, and heat transfer problems.

Essentially, it is a Qt graphical interface uniting several open-source tools for creating a mesh (with Gmsh mesher), solving differential equations with boundary conditions (with MUMPS solver), and analyzing the results (with Matplotlib). Every model is a simple human-readable TOML file that can also be run headless from the command line, making it ideal for scripting and working with agents.

<figure><img src="https://1415921036-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FchGCzofnfPNZnHXSRSK1%2Fuploads%2Fgit-blob-ea66a66f50adec398b4cfde956b96b4160ff71d8%2Fscreenshot.jpg?alt=media" alt="The SolidOcean interface: the model tree, the wavevector sweep settings and the mesh of a silicon unit cell with an aluminium pillar"><figcaption><p>Interface of SolidOcean showing a unit cell for phonon dispersion calculation.</p></figcaption></figure>

## What it can do

#### Solid mechanics problems

* **Eigenfrequencies** and mode shapes calculations with phonon dispersion along chosen wavevector paths in selected Brillouin zones.
* **Stationary** displacement calculation with strain, stress and von Mises stress under fixed or prescribed displacements and boundary loads.
* **Frequency domain** problems with the driven response to oscillating loads or displacements, with loss factors and absorbing regions.
* **Coherent heat conduction** at low temperature: the phonon bands over a mesh of the Brillouin zone, the density of states, group velocity and spectral heat flux they carry, and the ballistic thermal conductance that follows from them.

#### Heat transfer problems

* **Stationary** and **transient** problems with fixed temperature, heat flux, convection and radiation boundaries, volume heat sources with pulses and spatial profiles, thermal boundary resistances and thin resistive layers at interfaces.
* **Frequency domain** problems with the temperature oscillation driven at one frequency, as in the 3ω and FDTR methods.
* **Hydrodynamic** phonon heat transport (the steady Guyer–Krumhansl equation): the heat flux is solved together with the temperature, giving Poiseuille flow in narrow structures and heat vortices beside current contacts.

## Where to go next

* [Installation](/solidocean/installation.md) — ways to install the software.
* [Usage](/solidocean/usage.md) — the command line, the interface, templates, sweeps, and what a run writes.
* [Model file](/solidocean/model-file.md) — every section and key of the model file.
* [Tutorials](/solidocean/tutorials.md) — a few example models.
* [Formalism](/solidocean/physics.md) — the formulation, the elements and the solvers.
* [Validation](/solidocean/validation.md) — comparisons with exact solutions, and the full report.
* [Licenses](/solidocean/licenses.md) — SolidOcean's license and those of the projects it builds on.

## Source code

The source lives at [github.com/anufrievroman/solidocean](https://github.com/anufrievroman/solidocean). How the code is organised, and how to add to it, is described under [Technical documentation](/solidocean/technical-documentation/architecture.md).

## Disclaimer

SolidOcean is an independent project. It is a graphical interface to open-source tools that already exist, uniting their workflow under one roof as a lab tool for academic research. It is provided as is, without any warranty. Check the results of your models against known solutions before relying on them.
