ectoolkits.analysis.atom_density module#
- class ectoolkits.analysis.atom_density.AtomDensity(atomgroup, verbose=True, **kwargs)[source]#
Bases:
AnalysisBase
Class for analyzing atom density profiles along the z-axis for interface systems.
This class extends the MDAnalysis AnalysisBase class and provides methods to compute and analyze atom density distributions along the z-axis, which is useful for studying interfaces and layered materials.
- twoD#
Whether the system is a 2D material (surface 1 and 2 are the same).
- Type:
bool
- surf1#
Indices of atoms defining surface 1 (left interface).
- Type:
np.ndarray
- surf2#
Indices of atoms defining surface 2 (right interface).
- Type:
np.ndarray
- density_type#
Parameters specifying which atom types to analyze.
- Type:
Any
- ag#
AtomGroup of all atoms to be analyzed.
- Type:
AtomGroup
- u#
The MDAnalysis Universe object containing the atomgroup and trajectory.
- Type:
Universe
- cellpar#
Unit cell parameters of the system.
- Type:
np.ndarray
- n_atoms#
Number of atoms in the selected atom group.
- Type:
int
- volume#
Volume of the simulation cell.
- Type:
float
- xy_area#
Area of the xy-plane of the simulation cell.
- Type:
float
- n_results#
Number of results to store for each frame.
- Type:
int
- all_z#
Array to store z-coordinates of all atoms for each frame.
- Type:
np.ndarray
- surf1_z_list#
Average z positions of surface 1 atoms for each frame.
- Type:
np.ndarray
- surf2_z_list#
Average z positions of surface 2 atoms for each frame.
- Type:
np.ndarray
- surf1_z#
Mean z position of surface 1.
- Type:
float
- surf2_z#
Mean z position of surface 2.
- Type:
float
- water_cent_list#
List of water center positions along the trajectory.
- Type:
np.ndarray
- atom_density#
Dictionary to store computed atom density profiles.
- Type:
dict
- atom_density_z#
Dictionary to store z-coordinates corresponding to density profiles.
- Type:
dict
- get_unit_conversion(density_unit, dz, xy_area)[source]#
Computes the unit conversion factor for density.
- get_atom_density(param, idx_list)[source]#
Calculate and save the atom density profile.
Computes the histogram of atom z-coordinates, normalizes the density, and saves the profile to a file.
- Parameters:
param (dict) – Parameters for density calculation (e.g., bin width, unit).
idx_list (list or np.array) – Indices of atoms to include in the density profile.
- get_idx_list(param)[source]#
Determine atom indices to analyze based on input parameters.
Selects indices either manually or by element type as specified in the parameter dictionary.
- Parameters:
param (dict) – Dictionary specifying selection method and parameters.
- Returns:
List of atom indices to analyze.
- Return type:
list or np.array
- get_idx_list_all(param)[source]#
Return all atom indices of a specified element.
- Parameters:
param (dict) – Dictionary containing ‘element’.
- Returns:
Array of atom indices for the specified element.
- Return type:
np.array
- get_idx_list_manual(param)[source]#
Return manually specified atom indices.
- Parameters:
param (dict) – Dictionary containing ‘idx_list’.
- Returns:
List of atom indices.
- Return type:
list
- get_surf_z_list(idxs_surf: array) array [source]#
Calculate the average z positions for a given surface.
Wraps the z-coordinates of surface atoms to handle periodic boundaries and computes the mean z position for each frame.
- Parameters:
idxs_surf (np.array) – Indices of surface atoms.
- Returns:
Average z positions for each frame.
- Return type:
np.array
- static get_unit_conversion(density_unit, dz, xy_area)[source]#
Compute the unit conversion factor for density.
- Parameters:
density_unit (str) – Desired density unit (‘water’ or ‘number’).
dz (float) – Bin width along z-axis.
xy_area (float) – Area of the xy-plane.
- Returns:
Conversion factor for density normalization.
- Return type:
float
- class ectoolkits.analysis.atom_density.Density(inp)[source]#
Bases:
object
- get_all_z() array [source]#
get the z coordinates of atoms along trajectory
_extended_summary_
- Returns:
the z coordinates of atoms
- Return type:
np.array
- get_surf1_z_list() array [source]#
calculate the surface 1 average position
_extended_summary_
- Returns:
axis 0: traj
- Return type:
np.array