# Forward modelling¶

Harmonica offers some functions and classes to calculate the gravity and magnetic fields generated by the following 3D bodies.

## Gravity¶ Point sources

Cartesian and spherical coordinates Rectangular prisms

Cartesian coordinates Tesseroids

Spherical coordinates

## General description¶

Most of these functions require three main arguments:

• The computation points, which are usually passed as the `coordinates` argument. These are the set of points where the field will be computed. They must be a tuple containing its coordinates in the following order: `easting`, `northing` and `upward` or `longitude`, `latitude` and `radius` (depending on the coordinate system that’s being used).

• The sources or geometric bodies that generate the field that will be computed. They must be often specified by their location or their boundaries.

• The physical properties of the sources. For example, when computing gravity fields we might need to pass either the density or the mass of the sources.

Optionally, we might need to specify which type of field we want to compute. For example, we might choose the potential gravity field or the vertical component of the gravity acceleration (`"g_z"`).