CShDA reference

Functions

subroutine cshda(nat1, typ1, coords1, nat2, typ2, coords2, some_threshold, found, dists)

Linear Assignment Problem (LAP) algorithm: Constrained Shortest Distance Assignment (CShDA).

Assign atoms of configuration 1 to atoms of configuration 2 based on the CShDA algorithm.

Note

WARNING nat1 must be lower or equal nat2!

Parameters
  • nat1[in] -> number of atoms in conf 1;

  • typ1[in] -> atomic types in conf 1;

  • coords1[in] -> coordinates of conf 1;

  • nat2[in] -> number of atoms in conf 2;

  • typ2[in] -> atomic types in conf 2;

  • coords2[in] -> coordinates of conf 2;

  • some_threshold[in] -> threshold for the Hausdorff distance, used for early exit;

  • found[out] -> list of assigned atoms of conf 2 to conf 1: e.g. found(3) = 9 means atom 3 from conf 1 is assigned to atom 9 in conf 2;

  • dists[out] -> distances from atom i in conf 1 to atom found(i) in conf 2;

subroutine cshda_pbc(nat1, typ1, coords1, nat2, typ2, coords2, lat2, some_thr, found, dists)

Linear Assignment Problem (LAP) algorithm: Constrained Shortest Distance Assignment (CShDA).

Assign atoms of configuration 1 to atoms of configuration 2 based on the CShDA algorithm. The configuration 2 is periodic with given lattice.

Note

WARNING nat1 must be lower or equal nat2!

Parameters
  • nat1[in] -> number of atoms in conf 1;

  • typ1[in] -> atomic types in conf 1;

  • coords1[in] -> coordinates of conf 1;

  • nat2[in] -> number of atoms in conf 2;

  • typ2[in] -> atomic types in conf 2;

  • coords2[in] -> coordinates of conf 2;

  • lat2[in] -> lattice vectors of conf 2 in rows;

  • some_thr[in] -> threshold for hd;

  • found[out] -> list of paired atoms of conf 2 to conf 1: e.g. found(3) = 9 means atom 3 from conf 1 is paired to atom 9 in conf 2;

  • dists[out] -> distances from atom i in conf 1 to atom found(i) in conf 2;