26 static void setInputFile(
const std::string & input_file);
39 static typename std::map<int, std::vector<T>>::iterator
40 getSMAIterator(std::map<
int, std::vector<T>> & array,
int id,
const std::string &
function);
44 static typename std::map<int, std::vector<T>> &
46 const std::string &
function);
64 static std::array<std::unique_ptr<Threads::spin_mutex>, 101>
_mutex;
71 typename std::map<int, std::vector<T>>::iterator
74 const std::string &
function)
76 auto it = array.find(
id);
77 if (it == array.end())
78 mooseError(
"Invalid id ",
id,
" in ",
function,
".");
83 typename std::map<int, std::vector<T>> &
85 const std::string &
function)
88 if (puid.
id >= local_array.size())
89 mooseError(
"SMA storage not properly initialized in ",
function,
".");
90 return local_array[puid.
id];
static std::string getOutputDir()
static void setCommunicator(const libMesh::Parallel::Communicator *communicator)
Global storage for the MPI communicator, this will be set by any Abaqus class.
static std::array< std::unique_ptr< Threads::spin_mutex >, 101 > _mutex
static std::string getJobName()
void mooseError(Args &&... args)
static std::map< int, std::vector< T > >::iterator getSMAIterator(std::map< int, std::vector< T >> &array, int id, const std::string &function)
get data vector iterator with error checking
static void mutexInit(std::size_t n)
Mutex API.
static void smaInitialize()
thread storage initialization
static std::vector< std::map< int, std::vector< Real > > > _sma_local_float_array
static const libMesh::Parallel::Communicator * getCommunicator()
static void mutexLock(std::size_t n)
static void mutexUnlock(std::size_t n)
static const libMesh::Parallel::Communicator * _communicator
static std::string _output_dir
static std::string _job_name
static std::map< int, std::vector< int > > _sma_int_array
Shared Memory Arrays.
Utility class to interface between the object oriented MOOSE app structure and global Abaqus utility ...
static std::map< int, std::vector< Real > > _sma_float_array
static void setInputFile(const std::string &input_file)
Global storage for the simulation output directory, this will be set by any Abaqus class...
static std::vector< std::map< int, std::vector< int > > > _sma_local_int_array
static std::map< int, std::vector< T > > & getSMAThreadArray(std::vector< std::map< int, std::vector< T >>> &local_array, const std::string &function)
get thread local array