LCOV - code coverage report
Current view: top level - simplemd/configurations - MolecularDynamicsConfiguration.h (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 2 2
Test Date: 2026-08-21 15:14:06 Functions: 100.0 % 2 2

            Line data    Source code
       1              : // Copyright (C) 2015 Technische Universitaet Muenchen
       2              : // This file is part of the Mamico project. For conditions of distribution
       3              : // and use, please see the copyright notice in Mamico's main folder, or at
       4              : // www5.in.tum.de/mamico
       5              : #ifndef _MOLECULARDYNAMICS_CONFIGURATIONS_MOLECULARDYNAMICSCONFIGURATION_H_
       6              : #define _MOLECULARDYNAMICS_CONFIGURATIONS_MOLECULARDYNAMICSCONFIGURATION_H_
       7              : 
       8              : #include "simplemd/configurations/Adios2Configuration.h"
       9              : #include "simplemd/configurations/CheckpointConfiguration.h"
      10              : #include "simplemd/configurations/DomainConfiguration.h"
      11              : #include "simplemd/configurations/DomainDecompConfiguration.h"
      12              : #include "simplemd/configurations/ExternalForceConfiguration.h"
      13              : #include "simplemd/configurations/MPIConfiguration.h"
      14              : #include "simplemd/configurations/MoleculeConfiguration.h"
      15              : #include "simplemd/configurations/ProfilePlotterConfiguration.h"
      16              : #include "simplemd/configurations/RDFConfiguration.h"
      17              : #include "simplemd/configurations/SimulationConfiguration.h"
      18              : #include "simplemd/configurations/VTKConfiguration.h"
      19              : #include "tarch/configuration/Configuration.h"
      20              : #include <iostream>
      21              : #include <vector>
      22              : 
      23              : namespace simplemd {
      24              : namespace configurations {
      25              : class MolecularDynamicsConfiguration;
      26              : }
      27              : } // namespace simplemd
      28              : 
      29              : /** configuration for MD simulations. Bundles all other configuration tags in
      30              :  * one main tag.
      31              :  *  @author Philipp Neumann
      32              :  */
      33              : class simplemd::configurations::MolecularDynamicsConfiguration : public tarch::configuration::Configuration {
      34              : 
      35              : public:
      36          408 :   MolecularDynamicsConfiguration() {}
      37          408 :   virtual ~MolecularDynamicsConfiguration() {}
      38              : 
      39              :   void parseSubtag(tinyxml2::XMLElement* node);
      40              :   /**
      41              :    * Return name of xml tag that is associated to the configuration.
      42              :    */
      43              :   std::string getTag() const;
      44              : 
      45              :   /**
      46              :    * Is config valid?
      47              :    *
      48              :    * This operation usually fails, if
      49              :    *
      50              :    * - parseSubtag() hasn't been called, i.e. configuration has not been
      51              :    *   used, or
      52              :    * - parseSubtag() failed due to a wrong file.
      53              :    *
      54              :    * If a tag ain't optional and parseSubtag() was not called (first case)
      55              :    */
      56              :   bool isValid() const;
      57              : 
      58              :   const simplemd::configurations::DomainConfiguration& getDomainConfiguration() const { return _domainConfiguration; }
      59              : 
      60              :   simplemd::configurations::DomainConfiguration& getDomainConfigurationNonConst() { return _domainConfiguration; }
      61              : 
      62              :   const simplemd::configurations::MoleculeConfiguration& getMoleculeConfiguration() const { return _moleculeConfiguration; }
      63              : 
      64              :   const simplemd::configurations::MPIConfiguration& getMPIConfiguration() const { return _mpiConfiguration; }
      65              : 
      66              :   const simplemd::configurations::VTKConfiguration& getVTKConfiguration() const { return _vtkConfiguration; }
      67              : 
      68              :   const simplemd::configurations::Adios2Configuration& getAdios2Configuration() const { return _Adios2Configuration; }
      69              : 
      70              :   const simplemd::configurations::SimulationConfiguration& getSimulationConfiguration() const { return _simulationConfiguration; }
      71              : 
      72              :   const simplemd::configurations::RDFConfiguration& getRDFConfiguration() const { return _rdfConfiguration; }
      73              : 
      74              :   const simplemd::configurations::CheckpointConfiguration& getCheckpointConfiguration() const { return _checkpointConfiguration; }
      75              : 
      76              :   const simplemd::configurations::DomainDecompConfiguration& getDomainDecompConfiguration() const { return _domainDecompConfiguration; }
      77              : 
      78              :   const std::vector<simplemd::configurations::ProfilePlotterConfiguration>& getProfilePlotterConfigurations() const { return _profilePlotterConfigurations; }
      79              : 
      80              :   const std::vector<simplemd::configurations::ExternalForceConfiguration>& getExternalForceConfigurations() const { return _externalForceConfigurations; }
      81              : 
      82              : private:
      83              :   simplemd::configurations::DomainConfiguration _domainConfiguration;
      84              :   simplemd::configurations::MoleculeConfiguration _moleculeConfiguration;
      85              :   simplemd::configurations::MPIConfiguration _mpiConfiguration;
      86              :   simplemd::configurations::VTKConfiguration _vtkConfiguration;
      87              :   simplemd::configurations::Adios2Configuration _Adios2Configuration;
      88              :   simplemd::configurations::SimulationConfiguration _simulationConfiguration;
      89              :   simplemd::configurations::RDFConfiguration _rdfConfiguration;
      90              :   simplemd::configurations::CheckpointConfiguration _checkpointConfiguration;
      91              :   simplemd::configurations::DomainDecompConfiguration _domainDecompConfiguration;
      92              :   std::vector<simplemd::configurations::ProfilePlotterConfiguration> _profilePlotterConfigurations;
      93              :   std::vector<simplemd::configurations::ExternalForceConfiguration> _externalForceConfigurations;
      94              : };
      95              : 
      96              : #endif // _MOLECULARDYNAMICS_CONFIGURATIONS_MOLECULARDYNAMICSCONFIGURATION_H_
        

Generated by: LCOV version 2.0-1