-
Notifications
You must be signed in to change notification settings - Fork 3
2E. Reactive surface
--(***) All the commands listed here are not considered if system exportation from a previous simulation is done
KIMERA automatically creates an initial reactive surface from the whole system which greatly increases the simulation performance. In order to define it, KIMERA considers the PBC, the atoms defined as insoluble, and the atoms defined as bulk atoms. Nevertheless, the initial surface may not be well defined. Impurities, dislocations, or other features that decrease the homogeneity of the atomic structure produce initial reactive sites that should not initially exist since they are not in contact with the solvent (the interior of a dislocation, for example). Therefore, similar commands to previous ones explained in the Topography and modifiers sections are available to modify it:
REMOVE_AB_PLANE_FROM_SURFACE (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_a (int)length_b
ADD_AB_PLANE_TO_SURFACE (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_a (int)length_b
REMOVE_AC_PLANE_FROM_SURFACE (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_a (int)length_c
ADD_AC_PLANE_TO_SURFACE (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_a (int)length_c
REMOVE_BC_PLANE_FROM_SURFACE (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_b (int)length_c
ADD_BC_PLANE_TO_SURFACE (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_b (int)length_c
REMOVE_CUBE_FROM_SURFACE (double)x (double)y (double)z (double)side
ADD_CUBE_TO_SURFACE (double)x (double)y (double)z (double)side
REMOVE_XY_DISLOCATION_FROM_SURFACE (double)x (double)y (double)radius
(optional line) FROM_Z_TO_Z (double)bot_z (double)top_z
(optional line) ANGLE_XZ_ANGLE_YZ (double)angle_xz (double)angle_yz
ADD_XY_DISLOCATION_TO_SURFACE (double)x (double)y (double)radius
(optional line) FROM_Z_TO_Z (double)bot_z (double)top_z
(optional line) ANGLE_XZ_ANGLE_YZ (double)angle_xz (double)angle_yz
REMOVE_XZ_DISLOCATION_FROM_SURFACE (double)x (double)z (double)radius
(optional line) FROM_Y_TO_Y (double)bot_y (double)top_y
(optional line) ANGLE_XY_ANGLE_ZY (double)angle_xz (double)angle_yz
ADD_XZ_DISLOCATION_TO_SURFACE (double)x (double)z (double)radius
(optional line) FROM_Y_TO_Y (double)bot_y (double)top_y
(optional line) ANGLE_XY_ANGLE_ZY (double)angle_xz (double)angle_yz
REMOVE_YZ_DISLOCATION_FROM_SURFACE (double)y (double)z (double)radius
(optional line) FROM_X_TO_X (double)bot_x (double)top_x
(optional line) ANGLE_YX_ANGLE_ZX (double)angle_yx (double)angle_zx
ADD_YZ_DISLOCATION_TO_SURFACE (double)y (double)z (double)radius
(optional line) FROM_X_TO_X (double)bot_x (double)top_x
(optional line) ANGLE_YX_ANGLE_ZX (double)angle_yx (double)angle_zx
REMOVE_PLANE_FROM_SURFACE (double)A (double)B (double)C (double)D (double)distance
ADD_PLANE_TO_SURFACE (double)A (double)B (double)C (double)D (double)distance
REMOVE_SPHERE_FROM_SURFACE (double)x (double)y (double)z (double)radius
ADD_SPHERE_TO_SURFACE (double)x (double)y (double)z (double)radius
REMOVE_ELLIPSOID_FROM_SURFACE (double)x (double)y (double)z (double)radiusx (double)radiusy (double)radiusz
ADD_ELLIPSOID_TO_SURFACE (double)x (double)y (double)z (double)radiusx (double)radiusy (double)radiusz
REMOVE_GENERAL_ELLIPSOID_TO_SURFACE (double)A (double)B (double)C (double)D (double)E (double)F (double)G (double)H (double)J (double)K
ADD_GENERAL_ELLIPSOID_TO_SURFACE (double)A (double)B (double)C (double)D (double)E (double)F (double)G (double)H (double)J (double)K
Note that:
-
The parameters of these last commands
ADD_GENERAL_ELLIPSOID_TO_SURFACE
andREMOVE_GENERAL_ELLIPSOID_FROM_SURFACE
indicate the coeficients of the ellipsoid general equation Ax2+By2+Cz2+Dxy+Exz+Fyz+Gx+Hy+Jz+K<1. -
The parameters of the
ADD_PLANE_TO_SURFACE
andREMOVE_PLANE_FROM_SURFACE
commands indicate the coeficients of the plane general equation Ax+By+Cz+D=0. -
The
pos_cell
goes from 0 toDIMENSION_A
-1,DIMENSION_B
-1 andDIMENSION_C
-1 respectively (see 2A. Simulation box section)
All the previous commands can be used selectively targeting atoms or particles of certain type. They are identical to the previous ones, but they have the TO_TYPE
surname and an additional input parameter with the target type:
REMOVE_AB_PLANE_FROM_SURFACE_TO_TYPE (text)atom_type (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_a (int)length_b
ADD_AB_PLANE_TO_SURFACE_TO_TYPE (text)atom_type (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_a (int)length_b
REMOVE_AC_PLANE_FROM_SURFACE_TO_TYPE (text)atom_type (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_a (int)length_c
ADD_AC_PLANE_TO_SURFACE_TO_TYPE (text)atom_type (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_a (int)length_c
REMOVE_BC_PLANE_FROM_SURFACE_TO_TYPE (text)atom_type (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_b (int)length_c
ADD_BC_PLANE_TO_SURFACE_TO_TYPE (text)atom_type (int)pos_cell_a (int)pos_cell_b (int)pos_cell_c (int)length_b (int)length_c
REMOVE_CUBE_FROM_SURFACE_TO_TYPE (text)atom_type (double)x (double)y (double)z (double)side
ADD_CUBE_TO_SURFACE_TO_TYPE (text)atom_type (double)x (double)y (double)z (double)side
REMOVE_XY_DISLOCATION_FROM_SURFACE_TO_TYPE (text)atom_type (double)x (double)y (double)radius
(optional line) FROM_Z_TO_Z (double)bot_z (double)top_z
(optional line) ANGLE_XZ_ANGLE_YZ (double)angle_xz (double)angle_yz
ADD_XY_DISLOCATION_TO_SURFACE_TO_TYPE (text)atom_type (double)x (double)y (double)radius
(optional line) FROM_Z_TO_Z (double)bot_z (double)top_z
(optional line) ANGLE_XZ_ANGLE_YZ (double)angle_xz (double)angle_yz
REMOVE_XZ_DISLOCATION_FROM_SURFACE_TO_TYPE (text)atom_type (double)x (double)z (double)radius
(optional line) FROM_Y_TO_Y (double)bot_y (double)top_y
(optional line) ANGLE_XY_ANGLE_ZY (double)angle_xz (double)angle_yz
ADD_XZ_DISLOCATION_TO_SURFACE_TO_TYPE (text)atom_type (double)x (double)z (double)radius
(optional line) FROM_Y_TO_Y (double)bot_y (double)top_y
(optional line) ANGLE_XY_ANGLE_ZY (double)angle_xz (double)angle_yz
REMOVE_YZ_DISLOCATION_FROM_SURFACE_TO_TYPE (text)atom_type (double)y (double)z (double)radius
(optional line) FROM_X_TO_X (double)bot_x (double)top_x
(optional line) ANGLE_YX_ANGLE_ZX (double)angle_yx (double)angle_zx
ADD_YZ_DISLOCATION_TO_SURFACE_TO_TYPE (text)atom_type (double)y (double)z (double)radius
(optional line) FROM_X_TO_X (double)bot_x (double)top_x
(optional line) ANGLE_YX_ANGLE_ZX (double)angle_yx (double)angle_zx
REMOVE_PLANE_FROM_SURFACE_TO_TYPE (text)atom_type (double)A (double)B (double)C (double)D (double)distance
ADD_PLANE_TO_SURFACE_TO_TYPE (text)atom_type (double)A (double)B (double)C (double)D (double)distance
REMOVE_SPHERE_FROM_SURFACE_TO_TYPE (text)atom_type (double)x (double)y (double)z (double)radius
ADD_SPHERE_TO_SURFACE_TO_TYPE (text)atom_type (double)x (double)y (double)z (double)radius
REMOVE_ELLIPSOID_FROM_SURFACE_TO_TYPE (text)atom_type (double)x (double)y (double)z (double)radiusx (double)radiusy (double)radiusz
ADD_ELLIPSOID_TO_SURFACE_TO_TYPE (text)atom_type (double)x (double)y (double)z (double)radiusx (double)radiusy (double)radiusz
REMOVE_GENERAL_ELLIPSOID_TO_SURFACE_TO_TYPE (text)atom_type (double)A (double)B (double)C (double)D (double)E (double)F (double)G (double)H (double)J (double)K
ADD_GENERAL_ELLIPSOID_TO_SURFACE_TO_TYPE (text)atom_type (double)A (double)B (double)C (double)D (double)E (double)F (double)G (double)H (double)J (double)K
At this point we can perform our simulation to study the mineral dissolution. In the next step we will see the neccesary commands to indicate KIMERA the output files we need.
Whenever you use KIMERA, please cite "Martin, P., Gaitero, J. J., Dolado, J. S., & Manzano, H. (2020). KIMERA: A Kinetic Montecarlo Code for Mineral Dissolution. Minerals, 10(9), 825" https://www.mdpi.com/2075-163X/10/9/825/htm