LCOV - code coverage report
Current view: top level - src - mechanics.cc (source / functions) Coverage Total Hit
Test: coverage_merged.info Lines: 78.6 % 42 33
Test Date: 2025-04-03 04:02:21 Functions: 100.0 % 1 1

            Line data    Source code
       1              : #include <iostream>
       2              : #include <fstream>
       3              : #include <iomanip>
       4              : 
       5              : #include "Util/Util.H"
       6              : #include "IO/ParmParse.H"
       7              : #include "IO/FileNameParse.H"
       8              : #include "IO/WriteMetaData.H"
       9              : #include "AMReX_ParmParse.H"
      10              : 
      11              : #include "Model/Solid/Linear/Isotropic.H"
      12              : #include "Model/Solid/Affine/Isotropic.H"
      13              : #include "Model/Solid/Linear/Cubic.H"
      14              : #include "Model/Solid/Affine/Cubic.H"
      15              : #include "Model/Solid/Finite/NeoHookean.H"
      16              : #include "Model/Solid/Finite/NeoHookeanPredeformed.H"
      17              : #include "Model/Solid/Finite/PseudoLinear/Cubic.H"
      18              : #include "Model/Solid/Finite/PseudoAffine/Cubic.H"
      19              : #include "Model/Solid/Linear/Laplacian.H"
      20              : #include "Model/Solid/Affine/J2.H"
      21              : #include "Model/Solid/Affine/Hexagonal.H"
      22              : 
      23              : #include "Integrator/Mechanics.H"
      24              : #include "Model/Solid/Finite/CrystalPlastic.H"
      25              : 
      26           18 : int main (int argc, char* argv[])
      27              : {
      28           18 :     Util::Initialize(argc,argv);
      29              : 
      30           18 :     std::string program;
      31           18 :     IO::ParmParse pp;
      32              :     // which integrator to use (can only be mechanics)
      33          126 :     pp.query_validate("alamo.program",program,{"mechanics"});
      34           18 :     srand(2);
      35              : 
      36           18 :     Integrator::Integrator *integrator = nullptr;
      37              : 
      38           18 :     if (program == "mechanics")
      39              :     {
      40           36 :         std::string model = "linear.isotropic";
      41              :         // which mechanics model to use
      42           90 :         pp.query_default("alamo.program.mechanics.model",model,"linear.isotropic");
      43           18 :         if (model == "linear.isotropic")
      44            6 :             pp.select_only<Integrator::Mechanics<Model::Solid::Linear::Isotropic>>(integrator);
      45           12 :         else if (model == "linear.cubic")
      46            0 :             pp.select_only<Integrator::Mechanics<Model::Solid::Linear::Cubic>>(integrator);
      47           12 :         else if (model == "affine.cubic")
      48            0 :             pp.select_only<Integrator::Mechanics<Model::Solid::Affine::Cubic>>(integrator);
      49           12 :         else if (model == "affine.hexagonal")
      50            1 :             pp.select_only<Integrator::Mechanics<Model::Solid::Affine::Hexagonal>>(integrator);
      51           11 :         else if (model == "affine.isotropic")
      52            3 :             pp.select_only<Integrator::Mechanics<Model::Solid::Affine::Isotropic>>(integrator);
      53            8 :         else if (model == "linear.laplacian")
      54            4 :             pp.select_only<Integrator::Mechanics<Model::Solid::Linear::Laplacian>>(integrator);
      55            4 :         else if (model == "finite.neohookean")
      56            3 :             pp.select_only<Integrator::Mechanics<Model::Solid::Finite::NeoHookean>>(integrator);
      57            1 :         else if (model == "finite.neohookeanpre")
      58            0 :             pp.select_only<Integrator::Mechanics<Model::Solid::Finite::NeoHookeanPredeformed>>(integrator);
      59            1 :         else if (model == "finite.pseudolinear.cubic")
      60            0 :             pp.select_only<Integrator::Mechanics<Model::Solid::Finite::PseudoLinear::Cubic>>(integrator);
      61            1 :         else if (model == "finite.pseudoaffine.cubic")
      62            0 :             pp.select_only<Integrator::Mechanics<Model::Solid::Finite::PseudoAffine::Cubic>>(integrator);
      63            1 :         else if (model == "affine.j2")
      64            1 :             pp.select_only<Integrator::Mechanics<Model::Solid::Affine::J2>>(integrator);
      65            0 :         else if (model == "finite.crystalplastic")
      66            0 :             pp.select_only<Integrator::Mechanics<Model::Solid::Finite::CrystalPlastic>>(integrator);
      67            0 :         else Util::Abort(INFO,model," is not a valid model");
      68           18 :     }
      69            0 :     else Util::Abort(INFO,"Error: \"",program,"\" is not a valid program.");
      70              : 
      71           18 :     integrator->InitData();
      72           18 :     integrator->Evolve();
      73           18 :     delete integrator;
      74              : 
      75           18 :     Util::Finalize();
      76           18 : } 
        

Generated by: LCOV version 2.0-1