https://mooseframework.inl.gov
AbaqusUExternalDB.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 #include "DynamicLibraryLoader.h"
16 
21 {
22 public:
24 
26 
27  virtual void initialize() override {}
28  virtual void initialSetup() override;
30  virtual void execute() override;
31  virtual void threadJoin(const UserObject &) override {}
32  virtual void finalize() override {}
33 
34 protected:
36  typedef void (*uexternaldb_t)(
37  int * LOP, int * LRESTART, Real TIME[], Real * DTIME, int * KSTEP, int * KINC);
38 
39  // call the plugin with the supplied LOP code
40  void callPlugin(int lop);
41 
42  // The plugin file name
43  FileName _plugin;
44 
45  // The plugin library wrapper
47 
48  // Function pointer to the dynamically loaded function
50 
51  // Abaqus simulation step number to pass in
52  int _aqSTEP;
53 
55 
58 };
virtual void finalize() override
void(* uexternaldb_t)(int *LOP, int *LRESTART, Real TIME[], Real *DTIME, int *KSTEP, int *KINC)
function type for the external UEXTERNALDB function
virtual void initialSetup() override
AbaqusUExternalDB(const InputParameters &parameters)
Interface class for step user object.
const AnalysisStepUserObject * _step_user_object
User object that determines the step number.
uexternaldb_t _uexternaldb
static InputParameters validParams()
Coupling user object to use Abaqus UEXTERNALDB subroutines in MOOSE.
void callPlugin(int lop)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
DynamicLibraryLoader _library
class infix_ostream_iterator if void
virtual void execute() override
the UEXTERNALDB subroutine gets called here
const InputParameters & parameters() const
virtual void threadJoin(const UserObject &) override
User object that provides analysis steps given user input.
const ExecFlagType & _current_execute_on_flag
virtual void initialize() override
Wrapper class to facilitate loading and lifetime management of dynamic libraries and obtaining pointe...