diff --git a/MDtutorials/k_vec_isodistort/data/STO_Parent.cif b/MDtutorials/k_vec_isodistort/data/STO_Parent.cif
new file mode 100755
index 0000000..77e68c1
--- /dev/null
+++ b/MDtutorials/k_vec_isodistort/data/STO_Parent.cif
@@ -0,0 +1,132 @@
+#------------------------------------------------------------------------------
+#$Date: 2016-02-14 06:40:26 +0200 (Sun, 14 Feb 2016) $
+#$Revision: 176432 $
+#$URL: svn://www.crystallography.net/cod/cif/1/51/21/1512124.cif $
+#------------------------------------------------------------------------------
+#
+# This file is available in the Crystallography Open Database (COD),
+# http://www.crystallography.net/
+#
+# All data on this site have been placed in the public domain by the
+# contributors.
+#
+data_1512124
+loop_
+_publ_author_name
+'Natheer B. Mahmood'
+'Emad K. Al-Shakarchi'
+'Brahim Elouadi'
+_publ_section_title
+;
+ Three Techniques Used to Produce BaTiO3 Fine Powder
+;
+_journal_name_full 'Journal of Modern Physics'
+_journal_page_first 1420
+_journal_page_last 1428
+_journal_paper_doi 10.4236/jmp.2011.211175
+_journal_volume 2
+_journal_year 2011
+_chemical_formula_analytical SrTiO3
+_chemical_formula_structural SrTiO3
+_chemical_formula_sum 'O3 Sr Ti'
+_chemical_formula_weight_meas 183.490
+_chemical_name_structure_type
+;
+Perovskite
+;
+_chemical_name_systematic
+;
+strontium titanate
+;
+_space_group_IT_number 221
+_symmetry_Int_Tables_number 221
+_symmetry_space_group_name_Hall '-P 4 2 3'
+_symmetry_space_group_name_H-M 'P m -3 m'
+_audit_creation_date 2013-07-23
+_audit_creation_method ' Natheer'
+_audit_update_record 2013-07-23
+_cell_angle_alpha 90.000
+_cell_angle_beta 90.000
+_cell_angle_gamma 90.000
+_cell_formula_units_Z 1
+_cell_length_a 3.8990
+_cell_length_b 3.8990
+_cell_length_c 3.8990
+_cell_volume 59.273
+_exptl_crystal_density_meas 5.140
+_cod_data_source_file ST.cif
+_cod_data_source_block ST
+_cod_original_cell_volume 59.3
+_cod_original_sg_symbol_Hall -P_4_2_3
+_cod_original_formula_sum 'Sr Ti O3'
+_cod_database_code 1512124
+loop_
+_symmetry_equiv_pos_site_id
+_symmetry_equiv_pos_as_xyz
+1 x,y,z
+2 -y,x,z
+3 -x,-y,z
+4 y,-x,z
+5 x,-z,y
+6 x,-y,-z
+7 x,z,-y
+8 z,y,-x
+9 -x,y,-z
+10 -z,y,x
+11 z,x,y
+12 y,z,x
+13 -y,-z,x
+14 z,-x,-y
+15 -y,z,-x
+16 -z,-x,y
+17 -z,x,-y
+18 y,-z,-x
+19 y,x,-z
+20 -y,-x,-z
+21 -x,z,y
+22 -x,-z,-y
+23 z,-y,x
+24 -z,-y,-x
+25 -x,-y,-z
+26 y,-x,-z
+27 x,y,-z
+28 -y,x,-z
+29 -x,z,-y
+30 -x,y,z
+31 -x,-z,y
+32 -z,-y,x
+33 x,-y,z
+34 z,-y,-x
+35 -z,-x,-y
+36 -y,-z,-x
+37 y,z,-x
+38 -z,x,y
+39 y,-z,x
+40 z,x,-y
+41 z,-x,y
+42 -y,z,x
+43 -y,-x,z
+44 y,x,z
+45 x,-z,-y
+46 x,z,y
+47 -z,y,-x
+48 z,y,x
+loop_
+_atom_site_label
+_atom_site_type_symbol
+_atom_site_fract_x
+_atom_site_fract_y
+_atom_site_fract_z
+_atom_site_occupancy
+_atom_site_symmetry_multiplicity
+_atom_site_Wyckoff_symbol
+_atom_site_calc_flag
+sr Sr 0.5000 0.5000 0.5000 1.000 1 b d
+ti Ti 0.0000 0.0000 0.0000 1.000 1 a d
+o O 0.5000 0.0000 0.0000 1.000 3 d d
+loop_
+_atom_type_symbol
+_atom_type_radius_bond
+Sr 1.200
+Ti 1.200
+O 1.200
diff --git a/MDtutorials/k_vec_isodistort/data/STO_Subgroup.cif b/MDtutorials/k_vec_isodistort/data/STO_Subgroup.cif
new file mode 100755
index 0000000..2f6e722
--- /dev/null
+++ b/MDtutorials/k_vec_isodistort/data/STO_Subgroup.cif
@@ -0,0 +1,194 @@
+# This file was generated by ISODISTORT, version 6.12.2
+# Harold T. Stokes, Branton J. Campbell, David Tanner, Dorian M. Hatch
+# Brigham Young University, Provo, Utah, USA
+#
+# Space Group: 221 Pm-3m Oh-1
+# Default space-group preferences: monoclinic axes a(b)c, monoclinic cell choice 1, orthorhombic axes abc, origin choice 2, hexagonal axes, SSG standard setting
+# Lattice parameters: a= 3.89900, b= 3.89900, c= 3.89900, alpha= 90.00000, beta= 90.00000, gamma= 90.00000
+# sr 1b (1/2,1/2,1/2)
+# ti 1a (0,0,0)
+# o 3d (1/2,0,0)
+# Include strain, displacive ALL distortions
+# k point: X, k10 (0,1/2,0)
+# IR: X1+, k10t1
+# P1 (a;0;0) 123 P4/mmm, basis={(1,0,0),(0,0,1),(0,-2,0)}, origin=(0,0,0), s=2, i=6, k-active= (0,1/2,0)
+# Order parameter values:
+# Pm-3m[0,1/2,0]X1+(a;0;0) 123 P4/mmm s=2 i=6
+# [sr:b:dsp]T1u(a): 0.10000
+# [o:d:dsp]A2u(a): -0.30000
+# Pm-3m[0,0,0]GM1+(a) 221 Pm-3m s=1 i=1
+# strain(a): 0.00000
+# Pm-3m[0,0,0]GM3+(a,-1.732a) 123 P4/mmm s=1 i=3
+# strain(a): 0.00000
+
+data_isodistort-output
+
+_cell_length_a 3.89900
+_cell_length_b 3.89900
+_cell_length_c 7.79800
+_cell_angle_alpha 90.00000
+_cell_angle_beta 90.00000
+_cell_angle_gamma 90.00000
+_cell_volume 118.54676
+
+_symmetry_space_group_name_H-M "P 4/m 2/m 2/m"
+_symmetry_Int_Tables_number 123
+_space_group.reference_setting '123:-P 4 2'
+_space_group.transform_Pp_abc a,b,c;0,0,0
+
+loop_
+_space_group_symop_id
+_space_group_symop_operation_xyz
+1 x,y,z
+2 x,-y,-z
+3 -x,y,-z
+4 -x,-y,z
+5 -y,-x,-z
+6 -y,x,z
+7 y,-x,z
+8 y,x,-z
+9 -x,-y,-z
+10 -x,y,z
+11 x,-y,z
+12 x,y,-z
+13 y,x,z
+14 y,-x,-z
+15 -y,x,-z
+16 -y,-x,z
+
+loop_
+_atom_type_symbol
+Sr
+Ti
+O
+
+loop_
+_atom_site_label
+_atom_site_type_symbol
+_atom_site_symmetry_multiplicity
+_atom_site_Wyckoff_symbol
+_atom_site_fract_x
+_atom_site_fract_y
+_atom_site_fract_z
+_atom_site_occupancy
+_atom_site_fract_symmform
+sr_1 Sr 2 h 0.50000 0.50000 0.74093 1.00000 0,0,Dz
+ti_1 Ti 1 a 0.00000 0.00000 0.00000 1.00000 0,0,0
+ti_2 Ti 1 b 0.00000 0.00000 0.50000 1.00000 0,0,0
+o_1 O 2 f 0.00000 0.50000 0.00000 1.00000 0,0,0
+o_2 O 2 e 0.00000 0.50000 0.50000 1.00000 0,0,0
+o_3 O 2 g 0.00000 0.00000 0.77720 1.00000 0,0,Dz
+
+_iso_displacivemode_number 2
+
+loop_
+_iso_displacivemode_ID
+_iso_displacivemode_label
+_iso_displacivemode_value
+ 1 Pm-3m[0,1/2,0]X1+(a;0;0)[sr:b:dsp]T1u(a) 0.10000
+ 2 Pm-3m[0,1/2,0]X1+(a;0;0)[o:d:dsp]A2u(a) -0.30000
+
+loop_
+_iso_displacivemodenorm_ID
+_iso_displacivemodenorm_value
+ 1 0.09068
+ 2 0.09068
+
+loop_
+_iso_deltacoordinate_ID
+_iso_deltacoordinate_label
+_iso_deltacoordinate_value
+ 1 sr_1_dz -0.00907
+ 2 o_3_dz 0.02720
+
+loop_
+_iso_coordinate_label
+_iso_coordinate_formula
+sr_1_x "1/2"
+sr_1_y "1/2"
+sr_1_z "3/4 + sr_1_dz"
+ti_1_x "0"
+ti_1_y "0"
+ti_1_z "0 + ti_1_dz"
+ti_2_x "0"
+ti_2_y "0"
+ti_2_z "1/2 + ti_2_dz"
+o_1_x "0"
+o_1_y "1/2"
+o_1_z "0 + o_1_dz"
+o_2_x "0"
+o_2_y "1/2"
+o_2_z "1/2 + o_2_dz"
+o_3_x "0"
+o_3_y "0"
+o_3_z "3/4 + o_3_dz"
+
+# matrix conversion: deltacoords(lattice units) = matrix.(modeamplitudes*modenormfactors)
+# Square matrix with _iso_displacivemode_number rows and columns
+
+loop_
+_iso_displacivemodematrix_row
+_iso_displacivemodematrix_col
+_iso_displacivemodematrix_value
+ 1 1 -1.00000
+ 2 2 -1.00000
+
+_iso_magneticmode_number 0
+
+
+_iso_rotationalmode_number 0
+
+
+_iso_occupancymode_number 0
+
+_iso_strainmode_number 2
+
+loop_
+_iso_strainmode_ID
+_iso_strainmode_label
+_iso_strainmode_value
+ 1 Pm-3m[0,0,0]GM1+(a)strain(a) 0.00000
+ 2 Pm-3m[0,0,0]GM3+(a,-1.732a)strain(a) 0.00000
+
+loop_
+_iso_strainmodenorm_ID
+_iso_strainmodenorm_value
+ 1 0.57735
+ 2 0.81650
+
+loop_
+_iso_strain_ID
+_iso_strain_label
+_iso_strain_value
+ 1 E_1 0.00000
+ 2 E_2 0.00000
+ 3 E_3 0.00000
+ 4 E_4 0.00000
+ 5 E_5 0.00000
+ 6 E_6 0.00000
+
+# matrix conversion: strains(parent) = matrix * modeamplitudes
+# Rectangular matrix with 6 rows and _iso_strainmode_number columns
+
+loop_
+_iso_strainmodematrix_row
+_iso_strainmodematrix_col
+_iso_strainmodematrix_value
+ 1 1 1.00000
+ 1 2 -0.50000
+ 2 1 1.00000
+ 2 2 1.00000
+ 3 1 1.00000
+ 3 2 -0.50000
+
+_iso_parentcell_length_a 3.89900
+_iso_parentcell_length_b 3.89900
+_iso_parentcell_length_c 3.89900
+_iso_parentcell_angle_alpha 90.00000
+_iso_parentcell_angle_beta 90.00000
+_iso_parentcell_angle_gamma 90.00000
+_iso_parentcell_volume 59.27338
+_iso_parent-to-child.transform_Pp_abc a,c,-2b;0,2,0
+
+# end of structure file
+# end of cif
diff --git a/MDtutorials/k_vec_isodistort/data/powgen_profile_lwf.instprm b/MDtutorials/k_vec_isodistort/data/powgen_profile_lwf.instprm
new file mode 100644
index 0000000..f5c7bb0
--- /dev/null
+++ b/MDtutorials/k_vec_isodistort/data/powgen_profile_lwf.instprm
@@ -0,0 +1,21 @@
+#GSAS-II instrument parameter file; do not add/delete items!
+Type:PNT
+Z:0.0
+fltPath:63.183
+alpha:0.19637459518597117
+sig-q:-115.671
+2-theta:90.0
+sig-1:-150.877831643885
+sig-0:223.89502267695218
+sig-2:74.40379758682252
+Zero:0.0
+difA:0.0
+difB:5.3599226472337405
+Azimuth:0.0
+Y:0.0
+X:0.0
+beta-q:0.1307895343792446
+beta-0:0.002606568983582579
+difC:22583.929270280536
+beta-1:-0.07551370867534292
+Bank:3.0
diff --git a/MDtutorials/k_vec_isodistort/imgs/addie_plotter.gif b/MDtutorials/k_vec_isodistort/imgs/addie_plotter.gif
new file mode 100755
index 0000000..bba642d
Binary files /dev/null and b/MDtutorials/k_vec_isodistort/imgs/addie_plotter.gif differ
diff --git a/MDtutorials/k_vec_isodistort/imgs/addie_simu.png b/MDtutorials/k_vec_isodistort/imgs/addie_simu.png
new file mode 100644
index 0000000..f7ce64e
Binary files /dev/null and b/MDtutorials/k_vec_isodistort/imgs/addie_simu.png differ
diff --git a/MDtutorials/k_vec_isodistort/imgs/addie_simu_result.png b/MDtutorials/k_vec_isodistort/imgs/addie_simu_result.png
new file mode 100644
index 0000000..da772bb
Binary files /dev/null and b/MDtutorials/k_vec_isodistort/imgs/addie_simu_result.png differ
diff --git a/MDtutorials/k_vec_isodistort/imgs/structures.png b/MDtutorials/k_vec_isodistort/imgs/structures.png
new file mode 100644
index 0000000..8ecd58c
Binary files /dev/null and b/MDtutorials/k_vec_isodistort/imgs/structures.png differ
diff --git a/MDtutorials/k_vec_isodistort/k_vec_isodistort.md b/MDtutorials/k_vec_isodistort/k_vec_isodistort.md
new file mode 100644
index 0000000..7a92bb7
--- /dev/null
+++ b/MDtutorials/k_vec_isodistort/k_vec_isodistort.md
@@ -0,0 +1,43 @@
+---
+title: Use the k-vector searched with GSAS-II to talk to ISODISTORT
+---
+
+
+* Exercise files are found [here](data/index.html)
+
+
+
+## Intro
+
+When the symmetry of a system is lowering through a group-subgroup pathway while going through a phase transition, one can try to use the emerging satellite peaks in the diffraction pattern to search for a k-vector that best explains the satellite peak positions. Refer to the two tutorials regarding the k-vector search in GSAS-II, [here](https://advancedphotonsource.github.io/GSAS-II-tutorials/k_vec_tutorial/k_vec_tutorial.html) and [here](https://advancedphotonsource.github.io/GSAS-II-tutorials/k_vec_tutorial_non_zero/k_vec_tutorial_non_zero.html). Once we obtain the alternative k-vector, we can move forward to use the k-vector to talk to ISODISTORT to search for all the isotropic subgroups that are compatible with the k-vector. It covers all the irreducible representations (IRs) compatible with the k-vector and the order parameters associated with each IR. An exhaustive refinement can then be performed for each of the candidate subgroup against the experimental diffraction data of the low symmetry phase. In this tutorial, we will demonstrate how to use the implementation in GSAS-II regarding this. Going through the steps to be presented here, we are expecting a series of GSAS-II project file, each for a specific subgroup candidate.
+
+For the demonstration purpose, here we are using the SrTiO${}_3$ structure as the parent and an arbitrarily generated subgroup (space group: $P4/mmm$) with a k-vector of (0, 1/2, 0). We simulated the powder diffraction data for both, with a typical instrument parameter file from the POWGEN diffractometer at SNS, ORNL. We will then use the simulated data to conduct a 'reverse engineering'. Namely, we can fit the simulated data from the subgroup with the parent phase and from there, we can use the residual peaks to extract the k-vector candidate and for a selected k-vector, we can construct GSAS-II project files for each of the subgroup candidate. We will `not` perform the exhaustive refinement for all the generated project files, though. `In the future, we can think about creating a wrapper script to run through all the generated candidate subgroups in a programmable manner.`
+
+Here below is shown the two structures used in this tutorial -- (left) the parent STO structure and (right) the arbitrarily generated subgroup structure.
+
+
+
+## Data Simulation
+
+For the data simulation with a CIF file, for sure we can use GSAS-II to do it. But here we want to showcase a convenient web-based tool for such a purpose. In fact, the backend calculation engine is still using GSAS-II, it is just that we will be doing this through an easy-accessible web interface. First, download the two structure files we include in the tutorial, `STO_Parent.cif` and `STO_Subgroup.cif`, together with the instrument parameter file we will be using for the simulation `powgen_profile_lwf.instprm`. Then go to the website, [https://addie.ornl.gov/simulatingpowder](https://addie.ornl.gov/simulatingpowder) (or, go to [https://addie.ornl.gov](https://addie.ornl.gov), then `Scattering Tools` => `SimulatePowder`). The interface looks like the figure to the right.
+
+
+
+There we can upload the CIF file and the instrument parameter file to use for the simulation and click on the `Submit` button. One can notice that we have a dropdown selection menu there in the interface from which we can select one of the pre-included instruments such as NOMAD and POWGEN at SNS, ORNL and HB-2A (Powder) and HB-2C (WAND^2), HFIR, ORNL. One can also select the scatterer type and put in some optional parameters (follow the link there to see what options we can put in). The resulted here will be like the figure to the right.
+
+
+
+We can download the simulated powder diffraction data by clicking on the `Datafile Download` button on top of the time-of-flight (TOF) result presented at the very top. Data in $d$ and $Q$ space are also presented but we do not need them here. We can do this for both CIF files provided here and if we do not change the CIF file names (`STO_Parent.cif` and `STO_Subgroup.cif`), we will obtain the following two simulated powder diffraction patterns, `STO_Parent_neutron_powder_calc.txt` and `STO_Subgroup_neutron_powder_calc.txt`, for the parent and subgroup phase, respectively. We will use these two simulated data files for the next part of the tutorial. Before that, if we want to have a quick comparison between the two datasets, we can go to [https://addie.ornl.gov/plotter](https://addie.ornl.gov/plotter), select the `Multiple Files Mode` and upload the two data files for a quick comparison plot. Here to the right is presented a demo for the tool.
+
+
+
+## Refinement of the Subgroup Data with the Parent Phase
+
+Since we are dealing with the simulated data so here we are not going to refine the parent data with the parent phase since that will be trivial and we are expecting a 'perfect' refinement. To start, we load in the subgroup simulated data and refine it with the parent phase, pretending that we don't know the subgroup structure. First, launch the GSAS-II GUI,
+
+## Authors
+
+| |
+| ---: |
+| Yuanpeng Zhang |
+| September 25, 2025 |