Yes, there are several software tools available for calculating and visualizing strain distribution in crystal structures with grain boundaries, similar to the figure you attached. Here are some commonly used options:
OVITO (Open Visualization Tool) OVITO is widely used for visualizing atomistic simulation data. It includes modifiers like "Atomic Strain" and "Displacement Vectors" to visualize local strain fields. Works well with output from molecular dynamics (MD) tools like LAMMPS, VASP, or other DFT/MD software.
LAMMPS (Large-scale Atomic/Molecular Massively Parallel Simulator) LAMMPS can compute per-atom stress tensors and local strain fields. Combine with OVITO for visualization.
VASP + Post-Processing Scripts If you use DFT, you can calculate relaxed atomic positions with VASP. Post-processing tools (e.g., custom Python scripts using ASE or pymatgen) can be used to extract strain information.
NanoDef A tool specifically designed to analyze defects and strains in nanostructures.
GPAW with strain analysis scripts GPAW supports real-space calculations and allows you to compute stress/strain distributions using post-processing.
Custom Python Workflows Libraries such as pymatgen, ASE, and matplotlib can be used to compute and visualize atomic displacements and strain tensors.
If you provide more detail on your data format (e.g., XYZ, POSCAR, dump file), I can suggest a more tailored workflow. Let me know!