# Input File Structure

In Penguin, the molecule and input specifications are contained in a single file, the INPUT.inp.  
This file is organized into sections, each starting with "@sectionname" and ending with "@end".  
The sections and their content can be arranged in any order.  

```
@method settings  
keyword: value  
keyword: value  
...  
keyword: value  
@end  

@memory  
keyword: value  
keyword: value  
...  
keyword: value  
@end  

@jobs  
keyword: value  
keyword: value  
...  
keyword: value  
@end  

@scf  
keyword: value  
keyword: value  
...  
keyword: value  
@end  

@molecule  
keyword: value
keyword: value
...
keyword: value
@end
```

## Example @molecule Section

An example of the [@molecule](./molecule.md#molecule) section in the INPUT.inp file demonstrates how to define the molecular structure and related parameters such as charge, multiplicity, and units of the coordinates.  
The following is such an example:

```
@molecule  
charge: 0  
multiplicity: 1  
units: bohr  
xyz:  
O 0.0000000000 0.0000000000 0.0000000000  
H 0.0000000000 1.4304281903 1.1071565216  
H 0.0000000000 -1.4304281903 1.1071565216  
@end
```

**In this example:**  
- [`charge`](./molecule.md#charge) specifies the net charge of the molecule (0 in this case, indicating a neutral molecule).  
- [`multiplicity`](./molecule.md#multiplicity) defines the spin multiplicity of the molecule (1 indicates a singlet state).  
- [`units`](./molecule.md#units) sets the unit of measurement for atomic coordinates (here the distances are provided in Bohr).  
- [`xyz`](./molecule.md#xyz) lists the atomic coordinates, with each line containing the element symbol followed by its x, y, and z coordinates.  

This configuration describes a water molecule (H$_2$O) with the oxygen atom at the origin and the two hydrogen atoms positioned symmetrically. 


## Required Sections

Currently, three sections are strictly required to perform a Penguin calculation:  
[@method settings](./method_settings.md#method-settings)  
[@jobs](./jobs.md#jobs)  
[@molecule](./molecule.md#molecule)