ArticleslgStudy

computer science

YAMBO code

YAMBO code is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand YAMBO code rather than just read about it. In short: Yambo is a computer software package for studying many-body theory aspects of solids and of molecular systems. It calculates the excited state properties of physical systems from first principles, e.g., from quantum mechanics law without the use of empirical data.

Key takeaways

  • YAMBO code belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect YAMBO code to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of YAMBO code from memory before moving on to harder problems.

Reference excerpt

Yambo is a computer software package for studying many-body theory aspects of solids and of molecular systems. It calculates the excited state properties of physical systems from first principles, e.g., from quantum mechanics law without the use of empirical data. It is an open-source software released under the GNU General Public License (GPL). However the main development repository is private and only a subset of the features available in the private repository are cloned into the public repository and thus distributed. The name Yambo does not stand for anything in particular; an interpretation thereof as Yet Another Many-Body cOde (or even Yet Another Many-Body Oracle) would be ultimately unofficial and up to the user's willingness or preference.

Excited state properties Yambo can calculate:

Quasiparticle energies: plasmon pole, COHSEX approximation, or real-axis Lifetimes within the GW approximation Optical absorption: RPA, Bethe Salpeter with or without Tamm-Dancoff approximation, TDDFT in TD-LDA or LRC Electron energy loss spectroscopy Dynamical polarizability electron-phonon coupling (static and dynamic perturbation theory) magneto optical properties surface spectroscopy

Physical systems

Yambo can treat molecules and periodic systems (both metallic an insulating) in three dimensions (crystalline solids) two dimensions (surfaces) and one dimension (e.g., nanotubes, nanowires, polymer chains). It can also handle collinear (i.e., spin-polarized wave functions) and non-collinear (spinors) magnetic systems. Typical systems are of the size of 10-100 atoms, or 10-400 electrons, per unit cell in the case of periodic systems.

Theoretical methods and approximations Yambo relies on many-body perturbation theory and time-dependent density functional theory. Quasiparticle energies are calculated within the GW approximation for the self energy. Optical properties are calculated either by solving the Bethe–Salpeter equation or by using the adiabatic local density approximation within time-dependent density functional theory.

Numerical details Yambo uses a plane waves basis set to represent the electronic (single-particle) wavefunctions. Core electrons are described with norm-conserving pseudopotentials. The choice of a plane-wave basis set enforces the periodicity of the systems. Isolated systems, and systems that are periodic in only one or two directions can be treated by using a supercell approach. For such systems Yambo offers two numerical techniques for the treatment of the Coulomb integrals: the cut-off and the random-integration method.

Technical details Yambo is interfaced with plane-wave density-functional codes: ABINIT, PWscf, CPMD and with the ETSF-io library. The utilities that interface these codes with Yambo are distributed along with the main program. The source code is written in Fortran 95 and C The code is parallelized using MPI running libraries

User interface Yambo has a command line user interface. Invoking the program with specific option generates the input with default values for the parameters consistent with the present data on the system. A postprocessing tool, distributed along with the main program, helps with the analysis and visualization of the results.

System requirements, portability Unix based systems Compilers for the programming languages Fortran 95 and C optional: PGI Fortran compiler for GPU version (starting from 4.5 release) optional: netcdf, fftw, mpi (for parallel execution), etsf-io Archived 2009-09-11 at the Wayback Machine, libxc, hdf5 Hardware requirements depend very much on the physical system under study and the chosen level of theory. For random-access memory (RAM) the requirements may vary from less than 1 GB to few GBs, depending on the problem.

Learning Yambo The Yambo team provides a wiki web-page with a list of tutorials and lecture notes. On the yambo web-site there is also a list of all thesis done with the code.

Non-distributed part Part of the YAMBO code is kept under a private repository. These are the features implemented and not yet distributed:

total energy using adiabatic-connection fluctuation-dissipation theorem magnetic field self-consistent GW dynamical Bethe–Salpeter finite-momentum Bethe-Salpeter real-time spectroscopy advanced kernels for time-dependent density functional theory (Nanoquanta kernel).

References

External links Official website Yambo on GitHub

Worked examples

Example 1 — a first encounter with YAMBO code

Start with the simplest possible case. Write down what YAMBO code claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to YAMBO code before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about YAMBO code ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of YAMBO code

In research
YAMBO code appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses YAMBO code in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
YAMBO code is common in secondary-school and first-year university syllabi. It links to neighbouring topics Computational chemistry software, Free physics software, Physics software, so understanding it makes those chapters shorter.
In everyday life
Look for YAMBO code outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “YAMBO code” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study YAMBO code in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what YAMBO code means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain YAMBO code out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is YAMBO code in simple terms?

Yambo is a computer software package for studying many-body theory aspects of solids and of molecular systems. It calculates the excited state properties of physical systems from first principles, e.g., from quantum mechanics law without the use of empirical data.

Why does YAMBO code matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study YAMBO code?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on YAMBO code.

Tags

  • Computational chemistry software
  • Free physics software
  • Physics software
  • Yet another

Keep exploring