NimbleSM
NimbleSM is a solid mechanics simulation code for dynamic systems
Loading...
Searching...
No Matches
nimble_cli.h
Go to the documentation of this file.
1/*
2// @HEADER
3// ************************************************************************
4//
5// NimbleSM
6// Copyright 2018
7// National Technology & Engineering Solutions of Sandia, LLC (NTESS)
8//
9// Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government
10// retains certain rights in this software.
11//
12// Redistribution and use in source and binary forms, with or without
13// modification, are permitted provided that the following conditions are
14// met:
15//
16// 1. Redistributions of source code must retain the above copyright
17// notice, this list of conditions and the following disclaimer.
18//
19// 2. Redistributions in binary form must reproduce the above copyright
20// notice, this list of conditions and the following disclaimer in the
21// documentation and/or other materials provided with the distribution.
22//
23// 3. Neither the name of the Corporation nor the names of the
24// contributors may be used to endorse or promote products derived from
25// this software without specific prior written permission.
26//
27// THIS SOFTWARE IS PROVIDED BY NTESS "AS IS" AND ANY EXPRESS OR IMPLIED
28// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
29// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
30// NO EVENT SHALL NTESS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
32// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37//
38// Questions? Contact David Littlewood (djlittl@sandia.gov)
39//
40// ************************************************************************
41// @HEADER
42*/
43
44#ifndef NIMBLE_CLI_H
45#define NIMBLE_CLI_H
46
47#include <string>
48#include <memory>
49
50namespace nimble {
52{
53 public:
54
55 CommandLineConfiguration(int argc, char** argv);
59
62
63 virtual void ConfigureCommandLineArguments();
64
66
67 bool UseTpetra() const noexcept;
68 bool UseVT() const noexcept;
69 bool UseUQ() const noexcept;
70
71 const std::string &InputFilename() const noexcept;
72
73 int &ArgC() noexcept;
74 char **&ArgV() noexcept;
75
76 private:
77
78 struct impl;
79 std::unique_ptr< impl > impl_;
80};
81} // namespace nimble
82
83#endif // NIMBLE_CLI_H
int ParseAndGetErrorCode()
Definition nimble_cli.cc:113
CommandLineConfiguration(CommandLineConfiguration &&) noexcept
bool UseUQ() const noexcept
Definition nimble_cli.cc:136
virtual void ConfigureCommandLineArguments()
Definition nimble_cli.cc:79
int & ArgC() noexcept
Definition nimble_cli.cc:148
bool UseVT() const noexcept
Definition nimble_cli.cc:130
bool UseTpetra() const noexcept
Definition nimble_cli.cc:124
char **& ArgV() noexcept
Definition nimble_cli.cc:154
const std::string & InputFilename() const noexcept
Definition nimble_cli.cc:142
CommandLineConfiguration(int argc, char **argv)
Definition nimble_cli.cc:64
CommandLineConfiguration(const CommandLineConfiguration &)=delete
Definition kokkos_contact_manager.h:49
Definition nimble_cli.cc:53