LCOV - code coverage report
Current view: top level - include/userobjects - LAMMPSFileRunner.h (source / functions) Hit Total Coverage
Test: idaholab/magpie: 5710af Lines: 3 3 100.0 %
Date: 2025-07-21 23:34:39 Functions: 3 3 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /**********************************************************************/
       2             : /*                     DO NOT MODIFY THIS HEADER                      */
       3             : /* MAGPIE - Mesoscale Atomistic Glue Program for Integrated Execution */
       4             : /*                                                                    */
       5             : /*            Copyright 2017 Battelle Energy Alliance, LLC            */
       6             : /*                        ALL RIGHTS RESERVED                         */
       7             : /**********************************************************************/
       8             : 
       9             : #pragma once
      10             : 
      11             : #include "MDRunBase.h"
      12             : 
      13             : class Function;
      14             : 
      15             : /**
      16             :  * Reads lammps dump files to emulate MD simulation
      17             :  */
      18             : class LAMMPSFileRunner : public MDRunBase
      19             : {
      20             : public:
      21             :   static InputParameters validParams();
      22             : 
      23             :   LAMMPSFileRunner(const InputParameters & parameters);
      24             : 
      25         260 :   virtual void initialize() override {}
      26         260 :   virtual void execute() override {}
      27         260 :   virtual void finalize() override {}
      28             :   virtual void initialSetup() override;
      29             : 
      30             :   virtual void updateParticleList() override;
      31             : 
      32             : protected:
      33             :   /// reads a LAMMPS file
      34             :   void readLAMMPSFile(FileName filename);
      35             : 
      36             :   /// reads two LAMMPS files and interpolates times
      37             :   void readLAMMPSFileHistory(std::pair<FileName, FileName> filenames,
      38             :                              std::pair<Real, Real> timestamps,
      39             :                              Real current_time);
      40             : 
      41             :   /// helper function that finds two files, one right before and one right after md_time
      42             :   void findBracketingLAMMPSFiles(Real md_time,
      43             :                                  std::pair<std::string, std::string> & filenames,
      44             :                                  std::pair<Real, Real> & timestamps);
      45             : 
      46             :   bool isTimestamp(std::string ts_candidate) const;
      47             : 
      48             :   /// whether a sequence of input files or a single input file is read
      49             :   bool _time_sequence;
      50             : 
      51             :   /// name of LAMMPS file or file base if _time_sequence == true
      52             :   FileName _lammps_file;
      53             : 
      54             :   /// column of x, y, z coordinate in LAMMPS files
      55             :   std::vector<unsigned int> _pos_columns;
      56             : 
      57             :   /// column of properties in LAMMPS files
      58             :   std::vector<unsigned int> _prop_columns;
      59             : 
      60             :   /// Conversion from FEM time to MD time_stamp
      61             :   const Function * _time_conversion;
      62             : };

Generated by: LCOV version 1.14