https://mooseframework.inl.gov
Functions
SMAAspUserSubroutines.h File Reference

Go to the source code of this file.

Functions

intSMAIntArrayCreate (int id, int len, int val=0)
 
double * SMAFloatArrayCreate (int id, int len, double val=0.0)
 
intSMALocalIntArrayCreate (int id, int len, int val=0)
 
double * SMALocalFloatArrayCreate (int id, int len, double val=0.0)
 
intSMAIntArrayAccess (int id)
 
double * SMAFloatArrayAccess (int id)
 
intSMALocalIntArrayAccess (int id)
 
double * SMALocalFloatArrayAccess (int id)
 
int SMAIntArraySize (int id)
 
int SMAFloatArraySize (int id)
 
int SMALocalIntArraySize (int id)
 
int SMALocalFloatArraySize (int id)
 
void SMAIntArrayDelete (int id)
 
void SMAFloatArrayDelete (int id)
 
void SMALocalIntArrayDelete (int id)
 
void SMALocalFloatArrayDelete (int id)
 
void MutexInit (int id)
 
void MutexLock (int id)
 
void MutexUnlock (int id)
 

Function Documentation

◆ MutexInit()

void MutexInit ( int  id)

Definition at line 386 of file AbaqusUtils.C.

Referenced by uexternaldb_().

387 {
389 }
static void mutexInit(std::size_t n)
Mutex API.
Definition: AbaqusUtils.C:358

◆ MutexLock()

void MutexLock ( int  id)

Definition at line 392 of file AbaqusUtils.C.

Referenced by uexternaldb_().

393 {
395 }
static void mutexLock(std::size_t n)
Definition: AbaqusUtils.C:370

◆ MutexUnlock()

void MutexUnlock ( int  id)

Definition at line 398 of file AbaqusUtils.C.

Referenced by uexternaldb_().

399 {
401 }
static void mutexUnlock(std::size_t n)
Definition: AbaqusUtils.C:378

◆ SMAFloatArrayAccess()

double* SMAFloatArrayAccess ( int  id)

Definition at line 261 of file AbaqusUtils.C.

Referenced by uexternaldb_().

262 {
263  auto it = AbaqusUtils::getSMAIterator(AbaqusUtils::_sma_float_array, id, "SMAFloatArrayAccess");
264  return it->second.data();
265 }
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
Definition: AbaqusUtils.h:72
static std::map< int, std::vector< Real > > _sma_float_array
Definition: AbaqusUtils.h:53

◆ SMAFloatArrayCreate()

double* SMAFloatArrayCreate ( int  id,
int  len,
double  val = 0.0 
)

Referenced by uexternaldb_().

◆ SMAFloatArrayDelete()

void SMAFloatArrayDelete ( int  id)

Definition at line 329 of file AbaqusUtils.C.

Referenced by uexternaldb_().

330 {
331  auto it = AbaqusUtils::getSMAIterator(AbaqusUtils::_sma_float_array, id, "SMAFloatArrayDelete");
333 }
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
Definition: AbaqusUtils.h:72
static std::map< int, std::vector< Real > > _sma_float_array
Definition: AbaqusUtils.h:53

◆ SMAFloatArraySize()

int SMAFloatArraySize ( int  id)

Definition at line 295 of file AbaqusUtils.C.

Referenced by uexternaldb_().

296 {
297  auto it = AbaqusUtils::getSMAIterator(AbaqusUtils::_sma_float_array, id, "SMAFloatArraySize");
298  return it->second.size();
299 }
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
Definition: AbaqusUtils.h:72
static std::map< int, std::vector< Real > > _sma_float_array
Definition: AbaqusUtils.h:53

◆ SMAIntArrayAccess()

int* SMAIntArrayAccess ( int  id)

Definition at line 254 of file AbaqusUtils.C.

Referenced by uexternaldb_().

255 {
256  auto it = AbaqusUtils::getSMAIterator(AbaqusUtils::_sma_int_array, id, "SMAIntArrayAccess");
257  return it->second.data();
258 }
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
Definition: AbaqusUtils.h:72
static std::map< int, std::vector< int > > _sma_int_array
Shared Memory Arrays.
Definition: AbaqusUtils.h:52

◆ SMAIntArrayCreate()

int* SMAIntArrayCreate ( int  id,
int  len,
int  val = 0 
)

Definition at line 214 of file AbaqusUtils.C.

Referenced by uexternaldb_().

215 {
216  auto ib = AbaqusUtils::_sma_int_array.emplace(id, std::vector<int>(len, val));
217  if (ib.second == false)
218  mooseError("Error creating threaded storage in SMAIntArrayCreate");
219  return ib.first->second.data();
220 }
void mooseError(Args &&... args)
static std::map< int, std::vector< int > > _sma_int_array
Shared Memory Arrays.
Definition: AbaqusUtils.h:52

◆ SMAIntArrayDelete()

void SMAIntArrayDelete ( int  id)

Definition at line 322 of file AbaqusUtils.C.

Referenced by uexternaldb_().

323 {
324  auto it = AbaqusUtils::getSMAIterator(AbaqusUtils::_sma_int_array, id, "SMAIntArrayDelete");
325  AbaqusUtils::_sma_int_array.erase(it);
326 }
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
Definition: AbaqusUtils.h:72
static std::map< int, std::vector< int > > _sma_int_array
Shared Memory Arrays.
Definition: AbaqusUtils.h:52

◆ SMAIntArraySize()

int SMAIntArraySize ( int  id)

Definition at line 288 of file AbaqusUtils.C.

Referenced by uexternaldb_().

289 {
290  auto it = AbaqusUtils::getSMAIterator(AbaqusUtils::_sma_int_array, id, "SMAIntArraySize");
291  return it->second.size();
292 }
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
Definition: AbaqusUtils.h:72
static std::map< int, std::vector< int > > _sma_int_array
Shared Memory Arrays.
Definition: AbaqusUtils.h:52

◆ SMALocalFloatArrayAccess()

double* SMALocalFloatArrayAccess ( int  id)

Definition at line 277 of file AbaqusUtils.C.

Referenced by uexternaldb_().

278 {
280  "SMALocalFloatArrayAccess");
281  auto it = AbaqusUtils::getSMAIterator(array, id, "SMALocalFloatArrayAccess");
282  return it->second.data();
283 }
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
Definition: AbaqusUtils.h:72
static std::vector< std::map< int, std::vector< Real > > > _sma_local_float_array
Definition: AbaqusUtils.h:55
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
Definition: AbaqusUtils.h:84

◆ SMALocalFloatArrayCreate()

double* SMALocalFloatArrayCreate ( int  id,
int  len,
double  val = 0.0 
)

Referenced by uexternaldb_().

◆ SMALocalFloatArrayDelete()

void SMALocalFloatArrayDelete ( int  id)

Definition at line 345 of file AbaqusUtils.C.

Referenced by uexternaldb_().

346 {
348  "SMALocalFloatArrayDelete");
349  auto it = AbaqusUtils::getSMAIterator(array, id, "SMALocalFloatArrayDelete");
350  array.erase(it);
351 }
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
Definition: AbaqusUtils.h:72
static std::vector< std::map< int, std::vector< Real > > > _sma_local_float_array
Definition: AbaqusUtils.h:55
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
Definition: AbaqusUtils.h:84

◆ SMALocalFloatArraySize()

int SMALocalFloatArraySize ( int  id)

Definition at line 311 of file AbaqusUtils.C.

Referenced by uexternaldb_().

312 {
313  auto & array =
315  auto it = AbaqusUtils::getSMAIterator(array, id, "SMALocalFloatArraySize");
316  return it->second.size();
317 }
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
Definition: AbaqusUtils.h:72
static std::vector< std::map< int, std::vector< Real > > > _sma_local_float_array
Definition: AbaqusUtils.h:55
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
Definition: AbaqusUtils.h:84

◆ SMALocalIntArrayAccess()

int* SMALocalIntArrayAccess ( int  id)

Definition at line 268 of file AbaqusUtils.C.

Referenced by uexternaldb_().

269 {
270  auto & array =
272  auto it = AbaqusUtils::getSMAIterator(array, id, "SMALocalIntArrayAccess");
273  return it->second.data();
274 }
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
Definition: AbaqusUtils.h:72
static std::vector< std::map< int, std::vector< int > > > _sma_local_int_array
Definition: AbaqusUtils.h:54
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
Definition: AbaqusUtils.h:84

◆ SMALocalIntArrayCreate()

int* SMALocalIntArrayCreate ( int  id,
int  len,
int  val = 0 
)

Definition at line 232 of file AbaqusUtils.C.

Referenced by uexternaldb_().

233 {
236  "SMALocalIntArrayCreate")[id];
237  array.assign(len, val);
238  return array.data();
239 }
static void smaInitialize()
thread storage initialization
Definition: AbaqusUtils.C:188
static std::vector< std::map< int, std::vector< int > > > _sma_local_int_array
Definition: AbaqusUtils.h:54
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
Definition: AbaqusUtils.h:84

◆ SMALocalIntArrayDelete()

void SMALocalIntArrayDelete ( int  id)

Definition at line 336 of file AbaqusUtils.C.

Referenced by uexternaldb_().

337 {
338  auto & array =
340  auto it = AbaqusUtils::getSMAIterator(array, id, "SMALocalIntArrayDelete");
341  array.erase(it);
342 }
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
Definition: AbaqusUtils.h:72
static std::vector< std::map< int, std::vector< int > > > _sma_local_int_array
Definition: AbaqusUtils.h:54
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
Definition: AbaqusUtils.h:84

◆ SMALocalIntArraySize()

int SMALocalIntArraySize ( int  id)

Definition at line 302 of file AbaqusUtils.C.

Referenced by uexternaldb_().

303 {
304  auto & array =
306  auto it = AbaqusUtils::getSMAIterator(array, id, "SMALocalIntArraySize");
307  return it->second.size();
308 }
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
Definition: AbaqusUtils.h:72
static std::vector< std::map< int, std::vector< int > > > _sma_local_int_array
Definition: AbaqusUtils.h:54
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
Definition: AbaqusUtils.h:84