NimbleSM
NimbleSM is a solid mechanics simulation code for dynamic systems
Loading...
Searching...
No Matches
integrator_base.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 INTEGRATOR_BASE_H
45#define INTEGRATOR_BASE_H
46
48
49namespace nimble {
51class DataManager;
52
54{
55 public:
56
57 IntegratorBase( NimbleApplication &app, GenesisMesh &mesh, DataManager &data_manager );
58 virtual ~IntegratorBase();
59
60 virtual int Integrate() = 0;
61
62 NimbleApplication &App() noexcept { return *nimble_app_; }
63 const GenesisMesh &Mesh() const noexcept { return *mesh_; }
64 GenesisMesh &Mesh() noexcept { return *mesh_; }
65 DataManager &GetDataManager() noexcept { return *data_manager_; }
66
67 private:
68
69 NimbleApplication *nimble_app_;
70 GenesisMesh *mesh_;
71 DataManager *data_manager_;
72};
73}
74
75#endif // INTEGRATOR_BASE_H
Definition nimble_data_manager.h:70
Definition nimble_genesis_mesh.h:59
const GenesisMesh & Mesh() const noexcept
Definition integrator_base.h:63
virtual int Integrate()=0
NimbleApplication & App() noexcept
Definition integrator_base.h:62
IntegratorBase(NimbleApplication &app, GenesisMesh &mesh, DataManager &data_manager)
Definition integrator_base.cc:47
DataManager & GetDataManager() noexcept
Definition integrator_base.h:65
GenesisMesh & Mesh() noexcept
Definition integrator_base.h:64
Definition nimble.h:60
Definition kokkos_contact_manager.h:49