MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
LoadableElem Class Reference

#include <loadable.h>

Inheritance diagram for LoadableElem:
Collaboration diagram for LoadableElem:

Public Member Functions

 LoadableElem (unsigned int uLabel, const DofOwner *pDO, DataManager *pDM, MBDynParser &HP)
 
 LoadableElem (unsigned int uLabel, const DofOwner *pDO, const LoadableCalls *c, DataManager *pDM, MBDynParser &HP)
 
 ~LoadableElem (void)
 
void * pGetData (void) const
 
virtual unsigned int iGetNumDof (void) const
 
virtual DofOrder::Order GetDofType (unsigned int i) const
 
virtual void Output (OutputHandler &OH) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void AssMats (VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void BeforePredict (VectorHandler &X, VectorHandler &XP, VectorHandler &XPrev, VectorHandler &XPPrev) const
 
virtual void AfterPredict (VectorHandler &X, VectorHandler &XP)
 
virtual void Update (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual unsigned int iGetInitialNumDof (void) const
 
virtual void InitialWorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
VariableSubMatrixHandlerInitialAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
SubVectorHandlerInitialAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr)
 
virtual void SetInitialValue (VectorHandler &X)
 
virtual void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
 
virtual unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual doublereal dGetPrivData (unsigned int i) const
 
virtual int GetNumConnectedNodes (void) const
 
virtual void GetConnectedNodes (std::vector< const Node * > &connectedNodes) const
 
- Public Member Functions inherited from Elem
 Elem (unsigned int uL, flag fOut)
 
virtual ~Elem (void)
 
virtual std::ostream & DescribeDof (std::ostream &out, const char *prefix="", bool bInitial=false) const
 
virtual void DescribeDof (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const
 
virtual std::ostream & DescribeEq (std::ostream &out, const char *prefix="", bool bInitial=false) const
 
virtual void DescribeEq (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const
 
virtual bool bInverseDynamics (void) const
 
void SetInverseDynamicsFlags (unsigned uIDF)
 
unsigned GetInverseDynamicsFlags (void) const
 
bool bIsErgonomy (void) const
 
bool bIsRightHandSide (void) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr, const VectorHandler &XPrimePrimeCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
 
- Public Member Functions inherited from WithLabel
 WithLabel (unsigned int uL=0, const std::string &sN="")
 
virtual ~WithLabel (void)
 
void PutLabel (unsigned int uL)
 
void PutName (const std::string &sN)
 
unsigned int GetLabel (void) const
 
const std::string & GetName (void) const
 
- Public Member Functions inherited from SimulationEntity
 SimulationEntity (void)
 
virtual ~SimulationEntity (void)
 
virtual bool bIsValidIndex (unsigned int i) const
 
virtual DofOrder::Order GetEqType (unsigned int i) const
 
virtual HintParseHint (DataManager *pDM, const char *s) const
 
virtual void DerivativesUpdate (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void Update (const VectorHandler &XCurr, InverseDynamics::Order iOrder)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP, const VectorHandler &XPP)
 
virtual std::ostream & OutputAppend (std::ostream &out) const
 
virtual void ReadInitialState (MBDynParser &HP)
 
- Public Member Functions inherited from ToBeOutput
 ToBeOutput (flag fOut=fDefaultOut)
 
virtual ~ToBeOutput (void)
 
virtual void OutputPrepare (OutputHandler &OH)
 
virtual void Output (OutputHandler &OH, const VectorHandler &X, const VectorHandler &XP) const
 
virtual flag fToBeOutput (void) const
 
virtual bool bToBeOutput (void) const
 
virtual void SetOutputFlag (flag f=flag(1))
 
- Public Member Functions inherited from UserDefinedElem
 UserDefinedElem (unsigned uLabel, const DofOwner *pDO)
 
virtual ~UserDefinedElem (void)
 
bool NeedsAirProperties (void) const
 
void NeedsAirProperties (bool yesno)
 
virtual Elem::Type GetElemType (void) const
 
virtual AerodynamicElem::Type GetAerodynamicElemType (void) const
 
- Public Member Functions inherited from InitialAssemblyElem
 InitialAssemblyElem (unsigned int uL, flag fOut)
 
virtual ~InitialAssemblyElem (void)
 
- Public Member Functions inherited from SubjectToInitialAssembly
 SubjectToInitialAssembly (void)
 
virtual ~SubjectToInitialAssembly (void)
 
- Public Member Functions inherited from AerodynamicElem
 AerodynamicElem (unsigned int uL, const DofOwner *pDO, flag fOut)
 
virtual ~AerodynamicElem (void)
 
virtual const InducedVelocitypGetInducedVelocity (void) const
 
- Public Member Functions inherited from ElemWithDofs
 ElemWithDofs (unsigned int uL, const DofOwner *pDO, flag fOut)
 
virtual ~ElemWithDofs (void)
 
- Public Member Functions inherited from DofOwnerOwner
 DofOwnerOwner (const DofOwner *pDO)
 
virtual ~DofOwnerOwner ()
 
virtual const DofOwnerpGetDofOwner (void) const
 
virtual integer iGetFirstIndex (void) const
 
- Public Member Functions inherited from AirPropOwner
 AirPropOwner (void)
 
virtual ~AirPropOwner (void)
 
virtual void PutAirProperties (const AirProperties *pAP)
 
virtual flag fGetAirVelocity (Vec3 &Velocity, const Vec3 &X) const
 
virtual doublereal dGetAirDensity (const Vec3 &X) const
 
virtual doublereal dGetAirPressure (const Vec3 &X) const
 
virtual doublereal dGetAirTemperature (const Vec3 &X) const
 
virtual doublereal dGetSoundSpeed (const Vec3 &X) const
 
virtual bool GetAirProps (const Vec3 &X, doublereal &rho, doublereal &c, doublereal &p, doublereal &T) const
 
- Public Member Functions inherited from ElemGravityOwner
 ElemGravityOwner (unsigned int uL, flag fOut)
 
virtual ~ElemGravityOwner (void)
 
virtual doublereal dGetM (void) const
 
Vec3 GetS (void) const
 
Mat3x3 GetJ (void) const
 
Vec3 GetB (void) const
 
Vec3 GetG (void) const
 
- Public Member Functions inherited from GravityOwner
 GravityOwner (void)
 
virtual ~GravityOwner (void)
 
void PutGravity (const Gravity *pG)
 
virtual bool bGetGravity (const Vec3 &X, Vec3 &Acc) const
 

Protected Member Functions

void GetCalls (MBDynParser &HP)
 
void BindCalls (DataManager *pDM, MBDynParser &HP)
 
- Protected Member Functions inherited from ElemGravityOwner
virtual Vec3 GetS_int (void) const
 
virtual Mat3x3 GetJ_int (void) const
 
virtual Vec3 GetB_int (void) const
 
virtual Vec3 GetG_int (void) const
 

Protected Attributes

void * priv_data
 
char * module_name
 
LoadableCallscalls
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from UserDefinedElem
bool needsAirProperties
 
- Protected Attributes inherited from AirPropOwner
const AirPropertiespAirProperties
 
- Protected Attributes inherited from GravityOwner
GravitypGravity
 

Additional Inherited Members

- Public Types inherited from Elem
enum  Type {
  UNKNOWN = -1, AIRPROPERTIES = 0, INDUCEDVELOCITY, AUTOMATICSTRUCTURAL,
  GRAVITY, BODY, JOINT, JOINT_REGULARIZATION,
  BEAM, PLATE, FORCE, INERTIA,
  ELECTRICBULK, ELECTRIC, THERMAL, HYDRAULIC,
  BULK, LOADABLE, DRIVEN, EXTERNAL,
  AEROMODAL, AERODYNAMIC, GENEL, SOCKETSTREAM_OUTPUT,
  RTAI_OUTPUT = SOCKETSTREAM_OUTPUT, LASTELEMTYPE
}
 
- Public Types inherited from SimulationEntity
typedef std::vector< Hint * > Hints
 
- Public Types inherited from ToBeOutput
enum  { OUTPUT = 0x1U, OUTPUT_MASK = 0xFU, OUTPUT_PRIVATE = 0x10U, OUTPUT_PRIVATE_MASK = ~OUTPUT_MASK }
 
- Public Types inherited from AerodynamicElem
enum  Type {
  UNKNOWN = -1, INDUCEDVELOCITY = 0, AEROMODAL, AERODYNAMICBODY,
  AERODYNAMICBEAM, AERODYNAMICEXTERNAL, AERODYNAMICEXTERNALMODAL, AERODYNAMICLOADABLE,
  AIRCRAFTINSTRUMENTS, GENERICFORCE, LASTAEROTYPE
}
 

Detailed Description

Definition at line 222 of file loadable.h.

Constructor & Destructor Documentation

LoadableElem::LoadableElem ( unsigned int  uLabel,
const DofOwner pDO,
DataManager pDM,
MBDynParser HP 
)

Definition at line 231 of file loadable.cc.

References ASSERT, BindCalls(), and GetCalls().

235 : Elem(uLabel, flag(0)),
236 UserDefinedElem(uLabel, pDO),
237 priv_data(0),
238 module_name(0),
239 #ifdef USE_RUNTIME_LOADING
240 handle(0),
241 #endif // USE_RUNTIME_LOADING
242 calls(0)
243 {
244  ASSERT(pDM != 0);
245 
246  GetCalls(HP);
247  BindCalls(pDM, HP);
248 }
long int flag
Definition: mbdyn.h:43
LoadableCalls * calls
Definition: loadable.h:232
void GetCalls(MBDynParser &HP)
Definition: loadable.cc:270
unsigned int uLabel
Definition: withlab.h:44
#define ASSERT(expression)
Definition: colamd.c:977
void * priv_data
Definition: loadable.h:227
void BindCalls(DataManager *pDM, MBDynParser &HP)
Definition: loadable.cc:335
UserDefinedElem(unsigned uLabel, const DofOwner *pDO)
Definition: userelem.cc:152
char * module_name
Definition: loadable.h:228
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41

Here is the call graph for this function:

LoadableElem::LoadableElem ( unsigned int  uLabel,
const DofOwner pDO,
const LoadableCalls c,
DataManager pDM,
MBDynParser HP 
)

Definition at line 250 of file loadable.cc.

References ASSERT, and BindCalls().

255 : Elem(uLabel, flag(0)),
256 UserDefinedElem(uLabel, pDO),
257 priv_data(0),
258 module_name(0),
259 #ifdef USE_RUNTIME_LOADING
260 handle(0),
261 #endif // USE_RUNTIME_LOADING
262 calls(const_cast<LoadableCalls *>(c))
263 {
264  ASSERT(pDM != NULL);
265 
266  BindCalls(pDM, HP);
267 }
long int flag
Definition: mbdyn.h:43
LoadableCalls * calls
Definition: loadable.h:232
unsigned int uLabel
Definition: withlab.h:44
#define ASSERT(expression)
Definition: colamd.c:977
void * priv_data
Definition: loadable.h:227
void BindCalls(DataManager *pDM, MBDynParser &HP)
Definition: loadable.cc:335
UserDefinedElem(unsigned uLabel, const DofOwner *pDO)
Definition: userelem.cc:152
char * module_name
Definition: loadable.h:228
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41

Here is the call graph for this function:

LoadableElem::~LoadableElem ( void  )

Definition at line 479 of file loadable.cc.

References ASSERT, calls, LoadableCalls::destroy, module_name, and SAFEDELETEARR.

480 {
481  ASSERT(calls->destroy != NULL);
482  calls->destroy(this);
483 
484 #ifdef USE_RUNTIME_LOADING
485  if (handle != NULL) {
486  if (lt_dlclose(handle) != 0) {
487  silent_cerr("unable to close module "
488  "\"" << module_name << "\"" << std::endl);
489  }
490  }
491 #endif // USE_RUNTIME_LOADING
492 
494 }
#define SAFEDELETEARR(pnt)
Definition: mynewmem.h:713
LoadableCalls * calls
Definition: loadable.h:232
p_destroy destroy
Definition: loadable.h:218
#define ASSERT(expression)
Definition: colamd.c:977
char * module_name
Definition: loadable.h:228

Member Function Documentation

void LoadableElem::AfterConvergence ( const VectorHandler X,
const VectorHandler XP 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 592 of file loadable.cc.

References LoadableCalls::after_convergence, ASSERT, and calls.

594 {
595  ASSERT(calls->after_convergence != NULL);
596  calls->after_convergence(this, X, XP);
597 }
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
p_after_convergence after_convergence
Definition: loadable.h:205
void LoadableElem::AfterPredict ( VectorHandler X,
VectorHandler XP 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 576 of file loadable.cc.

References LoadableCalls::after_predict, ASSERT, and calls.

578 {
579  ASSERT(calls->after_predict != NULL);
580  calls->after_predict(this, X, XP);
581 }
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
p_after_predict after_predict
Definition: loadable.h:203
VariableSubMatrixHandler & LoadableElem::AssJac ( VariableSubMatrixHandler WorkMat,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 535 of file loadable.cc.

References LoadableCalls::ass_jac, ASSERT, and calls.

539 {
540  ASSERT(calls->ass_jac != NULL);
541  return calls->ass_jac(this, WorkMat, dCoef, XCurr, XPCurr);
542 }
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
p_ass_jac ass_jac
Definition: loadable.h:199
void LoadableElem::AssMats ( VariableSubMatrixHandler WorkMatA,
VariableSubMatrixHandler WorkMatB,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Reimplemented from Elem.

Definition at line 545 of file loadable.cc.

References LoadableCalls::ass_mats, ASSERT, and calls.

549 {
550  ASSERT(calls->ass_mats != NULL);
551  calls->ass_mats(this, WorkMatA, WorkMatB, XCurr, XPCurr);
552 }
LoadableCalls * calls
Definition: loadable.h:232
p_ass_mats ass_mats
Definition: loadable.h:200
#define ASSERT(expression)
Definition: colamd.c:977
SubVectorHandler & LoadableElem::AssRes ( SubVectorHandler WorkVec,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 555 of file loadable.cc.

References LoadableCalls::ass_res, ASSERT, and calls.

559 {
560  ASSERT(calls->ass_res != NULL);
561  return calls->ass_res(this, WorkVec,
562  dCoef, XCurr, XPCurr);
563 }
LoadableCalls * calls
Definition: loadable.h:232
p_ass_res ass_res
Definition: loadable.h:201
#define ASSERT(expression)
Definition: colamd.c:977
void LoadableElem::BeforePredict ( VectorHandler X,
VectorHandler XP,
VectorHandler XPrev,
VectorHandler XPPrev 
) const
virtual

Reimplemented from SimulationEntity.

Definition at line 566 of file loadable.cc.

References ASSERT, LoadableCalls::before_predict, and calls.

570 {
571  ASSERT(calls->before_predict != NULL);
572  calls->before_predict(this, X, XP, XPrev, XPPrev);
573 }
LoadableCalls * calls
Definition: loadable.h:232
p_before_predict before_predict
Definition: loadable.h:202
#define ASSERT(expression)
Definition: colamd.c:977
void LoadableElem::BindCalls ( DataManager pDM,
MBDynParser HP 
)
protected

Definition at line 335 of file loadable.cc.

References LoadableCalls::after_convergence, LoadableCalls::after_predict, LoadableCalls::ass_jac, LoadableCalls::ass_mats, LoadableCalls::ass_res, LoadableCalls::before_predict, calls, LoadableCalls::d_get_priv_data, LoadableCalls::description, LoadableCalls::destroy, DataManager::fReadOutput(), LoadableCalls::get_connected_nodes, LoadableCalls::i_get_initial_num_dof, LoadableCalls::i_get_num_connected_nodes, LoadableCalls::i_get_num_dof, LoadableCalls::i_get_num_priv_data, LoadableCalls::i_get_priv_data_idx, LoadableCalls::initial_ass_jac, LoadableCalls::initial_ass_res, LoadableCalls::initial_work_space_dim, int_after_convergence(), int_after_predict(), int_ass_jac(), int_ass_mats(), int_ass_res(), int_before_predict(), int_d_get_priv_data(), int_destroy(), int_get_connected_nodes(), int_i_get_initial_num_dof(), int_i_get_num_connected_nodes(), int_i_get_num_dof(), int_i_get_num_priv_data(), int_i_get_priv_data_idx(), int_initial_ass_jac(), int_initial_ass_res(), int_initial_work_space_dim(), int_output(), int_restart(), int_set_dof(), int_set_initial_value(), int_set_value(), int_update(), int_work_space_dim(), Elem::LOADABLE, LOADABLE_VERSION, LoadableCalls::loadable_version, LOADABLE_VERSION_OUT, MBDYN_EXCEPT_ARGS, module_name, LoadableCalls::name, LoadableCalls::output, priv_data, LoadableCalls::read, LoadableCalls::restart, LoadableCalls::set_dof, LoadableCalls::set_initial_value, LoadableCalls::set_value, ToBeOutput::SetOutputFlag(), WithLabel::uLabel, LoadableCalls::update, LoadableCalls::vendor, LoadableCalls::version, and LoadableCalls::work_space_dim.

Referenced by LoadableElem().

336 {
338  silent_cerr("Loadable(" << uLabel
339  << "): incompatible version; need "
341  << ", got "
343  << std::endl);
345  }
346 
347  if (calls->read == NULL) {
348  silent_cerr("Loadable(" << uLabel
349  << "): function \"read\" must be defined in module <"
350  << module_name << "> data" << std::endl);
352  }
353 
354  if (calls->name == NULL) {
356  }
357 
358  if (calls->version == NULL) {
359  calls->version = "(undefined)";
360  }
361 
362  if (calls->vendor == NULL) {
363  calls->vendor = "(undefined)";
364  }
365 
366  if (calls->description == NULL) {
367  calls->description = "";
368  }
369 
370  silent_cout("Loadable(" << uLabel << "): " << calls->name
371  << " version " << calls->version << std::endl
372  << "\tvendor: " << calls->vendor << std::endl
373  << "\tdescription: " << calls->description
374  << std::endl);
375 
376  /*
377  * Mette i default ove servono
378  */
379  if (calls->i_get_num_dof == NULL) {
381  }
382 
383  if (calls->set_dof == NULL) {
385  }
386 
387  if (calls->output == NULL) {
389  }
390 
391  if (calls->restart == NULL) {
393  }
394 
395  if (calls->work_space_dim == NULL) {
397  }
398 
399  if (calls->ass_jac == NULL) {
401  }
402 
403  if (calls->ass_mats == NULL) {
405  }
406 
407  if (calls->ass_res == NULL) {
409  }
410 
411  if (calls->before_predict == NULL) {
413  }
414 
415  if (calls->after_predict == NULL) {
417  }
418 
419  if (calls->update == NULL) {
421  }
422 
423  if (calls->after_convergence == NULL) {
425  }
426 
427  if (calls->i_get_initial_num_dof == NULL) {
429  }
430 
431  if (calls->initial_work_space_dim == NULL) {
433  }
434 
435  if (calls->initial_ass_jac == NULL) {
437  }
438 
439  if (calls->initial_ass_res == NULL) {
441  }
442 
443  if (calls->set_value == NULL) {
445  }
446 
447  if (calls->set_initial_value == NULL) {
449  }
450 
451  if (calls->i_get_num_priv_data == NULL) {
453  }
454 
455  if (calls->i_get_priv_data_idx == NULL) {
457  }
458 
459  if (calls->d_get_priv_data == NULL) {
461  }
462 
463  if (calls->i_get_num_connected_nodes == NULL) {
465  }
466 
467  if (calls->get_connected_nodes == NULL) {
469  }
470 
471  if (calls->destroy == NULL) {
473  }
474 
475  priv_data = calls->read(this, pDM, HP);
477 }
flag fReadOutput(MBDynParser &HP, const T &t) const
Definition: dataman.h:1064
static void int_work_space_dim(const LoadableElem *, integer *piNumRows, integer *piNumCols)
Definition: loadable.cc:67
p_set_dof set_dof
Definition: loadable.h:195
p_work_space_dim work_space_dim
Definition: loadable.h:198
static std::ostream & int_restart(const LoadableElem *pEl, std::ostream &out)
Definition: loadable.cc:60
static SubVectorHandler & int_initial_ass_res(LoadableElem *, SubVectorHandler &WorkVec, const VectorHandler &)
Definition: loadable.cc:167
p_set_initial_value set_initial_value
Definition: loadable.h:211
static doublereal int_d_get_priv_data(const LoadableElem *, unsigned int)
Definition: loadable.cc:205
p_get_connected_nodes get_connected_nodes
Definition: loadable.h:216
p_i_get_num_dof i_get_num_dof
Definition: loadable.h:194
const char * version
Definition: loadable.h:181
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
static unsigned int int_i_get_initial_num_dof(const LoadableElem *)
Definition: loadable.cc:143
static void int_set_value(const LoadableElem *, DataManager *pDM, VectorHandler &, VectorHandler &, SimulationEntity::Hints *ph)
Definition: loadable.cc:176
p_read read
Definition: loadable.h:189
p_i_get_priv_data_idx i_get_priv_data_idx
Definition: loadable.h:213
const char * description
Definition: loadable.h:183
static SubVectorHandler & int_ass_res(LoadableElem *, SubVectorHandler &WorkVec, doublereal, const VectorHandler &, const VectorHandler &)
Definition: loadable.cc:98
p_i_get_num_connected_nodes i_get_num_connected_nodes
Definition: loadable.h:215
static int int_i_get_num_connected_nodes(const LoadableElem *pEl)
Definition: loadable.cc:212
p_restart restart
Definition: loadable.h:197
LoadableCalls * calls
Definition: loadable.h:232
p_i_get_initial_num_dof i_get_initial_num_dof
Definition: loadable.h:206
p_ass_res ass_res
Definition: loadable.h:201
static VariableSubMatrixHandler & int_ass_jac(LoadableElem *, VariableSubMatrixHandler &WorkMat, doublereal, const VectorHandler &, const VectorHandler &)
Definition: loadable.cc:76
p_i_get_num_priv_data i_get_num_priv_data
Definition: loadable.h:212
p_before_predict before_predict
Definition: loadable.h:202
p_destroy destroy
Definition: loadable.h:218
static VariableSubMatrixHandler & int_initial_ass_jac(LoadableElem *, VariableSubMatrixHandler &WorkMat, const VectorHandler &)
Definition: loadable.cc:158
static void int_before_predict(const LoadableElem *, VectorHandler &, VectorHandler &, VectorHandler &, VectorHandler &)
Definition: loadable.cc:109
static unsigned int int_i_get_priv_data_idx(const LoadableElem *, const char *s)
Definition: loadable.cc:198
unsigned int uLabel
Definition: withlab.h:44
static void int_after_convergence(const LoadableElem *, const VectorHandler &, const VectorHandler &)
Definition: loadable.cc:135
static void int_set_initial_value(const LoadableElem *, VectorHandler &)
Definition: loadable.cc:186
p_ass_mats ass_mats
Definition: loadable.h:200
p_d_get_priv_data d_get_priv_data
Definition: loadable.h:214
unsigned long loadable_version
Definition: loadable.h:174
p_initial_ass_jac initial_ass_jac
Definition: loadable.h:208
static void int_initial_work_space_dim(const LoadableElem *, integer *piNumRows, integer *piNumCols)
Definition: loadable.cc:149
p_after_convergence after_convergence
Definition: loadable.h:205
p_initial_ass_res initial_ass_res
Definition: loadable.h:209
static void int_destroy(LoadableElem *)
Definition: loadable.cc:224
void * priv_data
Definition: loadable.h:227
const char * vendor
Definition: loadable.h:182
static unsigned int int_i_get_num_dof(const LoadableElem *)
Definition: loadable.cc:41
p_ass_jac ass_jac
Definition: loadable.h:199
p_update update
Definition: loadable.h:204
static DofOrder::Order int_set_dof(const LoadableElem *, unsigned int)
Definition: loadable.cc:47
char * module_name
Definition: loadable.h:228
static void int_ass_mats(LoadableElem *, VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &, const VectorHandler &)
Definition: loadable.cc:87
#define LOADABLE_VERSION_OUT(v)
Definition: loadable.h:48
static void int_after_predict(const LoadableElem *, VectorHandler &, VectorHandler &)
Definition: loadable.cc:119
virtual void SetOutputFlag(flag f=flag(1))
Definition: output.cc:896
#define LOADABLE_VERSION
Definition: loadable.h:47
static void int_update(LoadableElem *, const VectorHandler &, const VectorHandler &)
Definition: loadable.cc:127
static unsigned int int_i_get_num_priv_data(const LoadableElem *)
Definition: loadable.cc:192
p_output output
Definition: loadable.h:196
p_set_value set_value
Definition: loadable.h:210
static void int_get_connected_nodes(const LoadableElem *pEl, std::vector< const Node * > &connectedNodes)
Definition: loadable.cc:218
static void int_output(const LoadableElem *, OutputHandler &)
Definition: loadable.cc:54
p_initial_work_space_dim initial_work_space_dim
Definition: loadable.h:207
const char * name
Definition: loadable.h:180
p_after_predict after_predict
Definition: loadable.h:203

Here is the call graph for this function:

doublereal LoadableElem::dGetPrivData ( unsigned int  i) const
virtual

Reimplemented from SimulationEntity.

Definition at line 660 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::d_get_priv_data.

661 {
662  ASSERT(calls->d_get_priv_data != NULL);
663  return calls->d_get_priv_data(this, i);
664 }
LoadableCalls * calls
Definition: loadable.h:232
p_d_get_priv_data d_get_priv_data
Definition: loadable.h:214
#define ASSERT(expression)
Definition: colamd.c:977
void LoadableElem::GetCalls ( MBDynParser HP)
protected

Definition at line 270 of file loadable.cc.

References calls, DEBUGCOUT, IncludeParser::GetFileName(), WithLabel::GetLabel(), IncludeParser::GetLineData(), HighParser::GetStringWithDelims(), HighParser::IsKeyWord(), MBDYN_EXCEPT_ARGS, module_name, SAFESTRDUP, and WithLabel::uLabel.

Referenced by LoadableElem().

271 {
272 #ifdef USE_RUNTIME_LOADING
273  /* nome del modulo */
274  const char* s = HP.GetFileName();
275  if (s == NULL) {
276  silent_cerr("Loadable(" << GetLabel()
277  << "): unable to get module name" << std::endl);
279  }
280 
282  handle = lt_dlopenext(module_name);
283 
284  if (handle == NULL) {
285  const char *err = lt_dlerror();
286  if (err == 0) {
287  err = "";
288  }
289 
290  silent_cerr("Loadable(" << uLabel
291  << "): unable to open module <" << module_name
292  << "> (" << err << ") at line " << HP.GetLineData()
293  << std::endl);
295  }
296 
297  /* default LoadableCalls struct */
298  const char *data_name = "calls";
299 
300  LoadableCalls **tmpcalls = NULL;
301  if (HP.IsKeyWord("name")) {
302  data_name = HP.GetStringWithDelims();
303  }
304  DEBUGCOUT("binding to data \"" << data_name
305  << "\" (must be def'd!)" << std::endl);
306  tmpcalls = (LoadableCalls **)lt_dlsym(handle, data_name);
307 
308  if (tmpcalls == NULL) {
309  const char* err = lt_dlerror();
310  if (err == NULL) {
311  silent_cerr("Loadable(" << uLabel
312  << "): data \"" << data_name
313  << "\" must be defined in module <"
314  << module_name << ">" << std::endl);
315  } else {
316  silent_cerr("Loadable(" << uLabel
317  << "): error while binding to data \""
318  << data_name
319  << "\" in module <" << module_name
320  << "> (\"" << err
321  << "\")" << std::endl);
322  }
324  }
325 
326  calls = *tmpcalls;
327 #else // !USE_RUNTIME_LOADING
328  silent_cerr("LoadableElem(" << GetLabel() << ") GetCalls: "
329  "should not be called when --disable-runtime-loading" << std::endl);
331 #endif // ! USE_RUNTIME_LOADING
332 }
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
virtual const char * GetFileName(enum Delims Del=DEFAULTDELIM)
Definition: parsinc.cc:673
LoadableCalls * calls
Definition: loadable.h:232
virtual bool IsKeyWord(const char *sKeyWord)
Definition: parser.cc:910
#define DEBUGCOUT(msg)
Definition: myassert.h:232
virtual const char * GetStringWithDelims(enum Delims Del=DEFAULTDELIM, bool escape=true)
Definition: parser.cc:1228
unsigned int uLabel
Definition: withlab.h:44
#define SAFESTRDUP(pnt, src)
Definition: mynewmem.h:707
char * module_name
Definition: loadable.h:228
virtual HighParser::ErrOut GetLineData(void) const
Definition: parsinc.cc:697
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

void LoadableElem::GetConnectedNodes ( std::vector< const Node * > &  connectedNodes) const
virtual

Reimplemented from Elem.

Definition at line 674 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::get_connected_nodes.

674  {
675  ASSERT(calls->get_connected_nodes != NULL);
676  return calls->get_connected_nodes(this, connectedNodes);
677 }
p_get_connected_nodes get_connected_nodes
Definition: loadable.h:216
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
DofOrder::Order LoadableElem::GetDofType ( unsigned int  i) const
virtual

Reimplemented from Elem.

Definition at line 504 of file loadable.cc.

References ASSERT, calls, iGetNumDof(), and LoadableCalls::set_dof.

505 {
506  ASSERT(i < iGetNumDof());
507  ASSERT(calls->set_dof != NULL);
508  return calls->set_dof(this, i);
509 }
p_set_dof set_dof
Definition: loadable.h:195
LoadableCalls * calls
Definition: loadable.h:232
virtual unsigned int iGetNumDof(void) const
Definition: loadable.cc:497
#define ASSERT(expression)
Definition: colamd.c:977

Here is the call graph for this function:

int LoadableElem::GetNumConnectedNodes ( void  ) const
virtual

Reimplemented from Elem.

Definition at line 667 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::i_get_num_connected_nodes.

668 {
670  return calls->i_get_num_connected_nodes(this);
671 }
p_i_get_num_connected_nodes i_get_num_connected_nodes
Definition: loadable.h:215
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
unsigned int LoadableElem::iGetInitialNumDof ( void  ) const
virtual

Implements SubjectToInitialAssembly.

Definition at line 600 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::i_get_initial_num_dof.

601 {
603  return calls->i_get_initial_num_dof(this);
604 }
LoadableCalls * calls
Definition: loadable.h:232
p_i_get_initial_num_dof i_get_initial_num_dof
Definition: loadable.h:206
#define ASSERT(expression)
Definition: colamd.c:977
unsigned int LoadableElem::iGetNumDof ( void  ) const
virtual

Reimplemented from Elem.

Definition at line 497 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::i_get_num_dof.

Referenced by GetDofType().

498 {
499  ASSERT(calls->i_get_num_dof != NULL);
500  return calls->i_get_num_dof(this);
501 }
p_i_get_num_dof i_get_num_dof
Definition: loadable.h:194
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
unsigned int LoadableElem::iGetNumPrivData ( void  ) const
virtual

Reimplemented from SimulationEntity.

Definition at line 646 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::i_get_num_priv_data.

Referenced by d_get_priv_data().

647 {
648  ASSERT(calls->i_get_num_priv_data != NULL);
649  return calls->i_get_num_priv_data(this);
650 }
LoadableCalls * calls
Definition: loadable.h:232
p_i_get_num_priv_data i_get_num_priv_data
Definition: loadable.h:212
#define ASSERT(expression)
Definition: colamd.c:977
unsigned int LoadableElem::iGetPrivDataIdx ( const char *  s) const
virtual

Reimplemented from SimulationEntity.

Definition at line 653 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::i_get_priv_data_idx.

654 {
655  ASSERT(calls->i_get_priv_data_idx != NULL);
656  return calls->i_get_priv_data_idx(this, s);
657 }
p_i_get_priv_data_idx i_get_priv_data_idx
Definition: loadable.h:213
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
VariableSubMatrixHandler & LoadableElem::InitialAssJac ( VariableSubMatrixHandler WorkMat,
const VectorHandler XCurr 
)
virtual

Implements SubjectToInitialAssembly.

Definition at line 614 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::initial_ass_jac.

616 {
617  ASSERT(calls->initial_ass_jac != NULL);
618  return calls->initial_ass_jac(this, WorkMat, XCurr);
619 }
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
p_initial_ass_jac initial_ass_jac
Definition: loadable.h:208
SubVectorHandler & LoadableElem::InitialAssRes ( SubVectorHandler WorkVec,
const VectorHandler XCurr 
)
virtual

Implements SubjectToInitialAssembly.

Definition at line 622 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::initial_ass_res.

624 {
625  ASSERT(calls->initial_ass_res != NULL);
626  return calls->initial_ass_res(this, WorkVec, XCurr);
627 }
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
p_initial_ass_res initial_ass_res
Definition: loadable.h:209
void LoadableElem::InitialWorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
virtual

Implements SubjectToInitialAssembly.

Definition at line 607 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::initial_work_space_dim.

Referenced by initial_ass_jac().

608 {
610  calls->initial_work_space_dim(this, piNumRows, piNumCols);
611 }
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
p_initial_work_space_dim initial_work_space_dim
Definition: loadable.h:207
void LoadableElem::Output ( OutputHandler OH) const
virtual

Reimplemented from ToBeOutput.

Definition at line 512 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::output.

513 {
514  ASSERT(calls->output != NULL);
515  calls->output(this, OH);
516 }
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
p_output output
Definition: loadable.h:196
void * LoadableElem::pGetData ( void  ) const
inline

Definition at line 310 of file loadable.h.

References priv_data.

Referenced by ass_jac(), ass_mats(), ass_res(), destroy(), get_connected_nodes(), i_get_num_connected_nodes(), initial_ass_jac(), and initial_ass_res().

311 {
312  return priv_data;
313 }
void * priv_data
Definition: loadable.h:227
std::ostream & LoadableElem::Restart ( std::ostream &  out) const
virtual

Implements Elem.

Definition at line 519 of file loadable.cc.

References ASSERT, calls, WithLabel::GetLabel(), module_name, and LoadableCalls::restart.

520 {
521  ASSERT(calls->restart != NULL);
522  out << " loadable: " << GetLabel() << ", \""
523  << module_name << "\", ";
524  return calls->restart(this, out) << ';' << std::endl;
525 }
p_restart restart
Definition: loadable.h:197
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
char * module_name
Definition: loadable.h:228
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

void LoadableElem::SetInitialValue ( VectorHandler X)
virtual

Initialize state vector used in initial assembly. May set internal states of the element. Do not rely on being always called, because initial assembly could be implicitly or explicitly skipped

Reimplemented from DofOwnerOwner.

Definition at line 630 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::set_initial_value.

631 {
632  ASSERT(calls->set_initial_value != NULL);
633  calls->set_initial_value(this, X);
634 }
p_set_initial_value set_initial_value
Definition: loadable.h:211
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
void LoadableElem::SetValue ( DataManager pDM,
VectorHandler X,
VectorHandler XP,
SimulationEntity::Hints ph = 0 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 637 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::set_value.

640 {
641  ASSERT(calls->set_value != NULL);
642  calls->set_value(this, pDM, X, XP, ph);
643 }
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
p_set_value set_value
Definition: loadable.h:210
void LoadableElem::Update ( const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 584 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::update.

586 {
587  ASSERT(calls->update != NULL);
588  calls->update(this, XCurr, XPrimeCurr);
589 }
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977
p_update update
Definition: loadable.h:204
void LoadableElem::WorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
virtual

Implements Elem.

Definition at line 528 of file loadable.cc.

References ASSERT, calls, and LoadableCalls::work_space_dim.

Referenced by ass_jac(), ass_mats(), ass_res(), and initial_ass_res().

529 {
530  ASSERT(calls->work_space_dim != NULL);
531  calls->work_space_dim(this, piNumRows, piNumCols);
532 }
p_work_space_dim work_space_dim
Definition: loadable.h:198
LoadableCalls * calls
Definition: loadable.h:232
#define ASSERT(expression)
Definition: colamd.c:977

Member Data Documentation

char* LoadableElem::module_name
protected

Definition at line 228 of file loadable.h.

Referenced by BindCalls(), GetCalls(), Restart(), and ~LoadableElem().

void* LoadableElem::priv_data
protected

Definition at line 227 of file loadable.h.

Referenced by BindCalls(), and pGetData().


The documentation for this class was generated from the following files: