49 silent_cerr(
"You shouldn't be here!" << std::endl);
62 return out <<
"loadable: " << pEl->
GetLabel()
63 <<
", not implemented yet;" << std::endl;
200 silent_cerr(
"You shouldn't be here!" << std::endl);
207 silent_cerr(
"You shouldn't be here!" << std::endl);
220 connectedNodes.resize(0);
239 #ifdef USE_RUNTIME_LOADING
259 #ifdef USE_RUNTIME_LOADING
272 #ifdef USE_RUNTIME_LOADING
276 silent_cerr(
"Loadable(" <<
GetLabel()
277 <<
"): unable to get module name" << std::endl);
284 if (handle == NULL) {
285 const char *err = lt_dlerror();
290 silent_cerr(
"Loadable(" <<
uLabel
292 <<
"> (" << err <<
") at line " << HP.
GetLineData()
298 const char *data_name =
"calls";
304 DEBUGCOUT(
"binding to data \"" << data_name
305 <<
"\" (must be def'd!)" << std::endl);
308 if (tmpcalls == NULL) {
309 const char* err = lt_dlerror();
311 silent_cerr(
"Loadable(" <<
uLabel
312 <<
"): data \"" << data_name
313 <<
"\" must be defined in module <"
316 silent_cerr(
"Loadable(" <<
uLabel
317 <<
"): error while binding to data \""
321 <<
"\")" << std::endl);
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
338 silent_cerr(
"Loadable(" <<
uLabel
339 <<
"): incompatible version; need "
348 silent_cerr(
"Loadable(" <<
uLabel
349 <<
"): function \"read\" must be defined in module <"
484 #ifdef USE_RUNTIME_LOADING
485 if (handle != NULL) {
486 if (lt_dlclose(handle) != 0) {
487 silent_cerr(
"unable to close module "
491 #endif // USE_RUNTIME_LOADING
522 out <<
" loadable: " <<
GetLabel() <<
", \""
541 return calls->
ass_jac(
this, WorkMat, dCoef, XCurr, XPCurr);
562 dCoef, XCurr, XPCurr);
691 silent_cerr(
"Loadable(" << uLabel <<
"): "
692 "unable to find loadable element module \""
flag fReadOutput(MBDynParser &HP, const T &t) const
static void int_work_space_dim(const LoadableElem *, integer *piNumRows, integer *piNumCols)
virtual int GetNumConnectedNodes(void) const
p_work_space_dim work_space_dim
static std::ostream & int_restart(const LoadableElem *pEl, std::ostream &out)
static SubVectorHandler & int_initial_ass_res(LoadableElem *, SubVectorHandler &WorkVec, const VectorHandler &)
p_set_initial_value set_initial_value
virtual unsigned int iGetInitialNumDof(void) const
static doublereal int_d_get_priv_data(const LoadableElem *, unsigned int)
p_get_connected_nodes get_connected_nodes
p_i_get_num_dof i_get_num_dof
#define MBDYN_EXCEPT_ARGS
virtual void GetConnectedNodes(std::vector< const Node * > &connectedNodes) const
static unsigned int int_i_get_initial_num_dof(const LoadableElem *)
static void int_set_value(const LoadableElem *, DataManager *pDM, VectorHandler &, VectorHandler &, SimulationEntity::Hints *ph)
virtual std::ostream & Restart(std::ostream &out) const
virtual unsigned int iGetPrivDataIdx(const char *s) const
virtual void AssMats(VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
#define SAFEDELETEARR(pnt)
virtual VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
p_i_get_priv_data_idx i_get_priv_data_idx
virtual const char * GetFileName(enum Delims Del=DEFAULTDELIM)
static SubVectorHandler & int_ass_res(LoadableElem *, SubVectorHandler &WorkVec, doublereal, const VectorHandler &, const VectorHandler &)
p_i_get_num_connected_nodes i_get_num_connected_nodes
virtual void Output(OutputHandler &OH) const
std::vector< Hint * > Hints
static int int_i_get_num_connected_nodes(const LoadableElem *pEl)
const LoadableCalls * GetLoadableElemModule(std::string) const
virtual DofOrder::Order GetDofType(unsigned int i) const
virtual UserDefinedElem * Read(unsigned uLabel, const DofOwner *pDO, DataManager *const pDM, MBDynParser &HP) const
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
void GetCalls(MBDynParser &HP)
p_i_get_initial_num_dof i_get_initial_num_dof
static VariableSubMatrixHandler & int_ass_jac(LoadableElem *, VariableSubMatrixHandler &WorkMat, doublereal, const VectorHandler &, const VectorHandler &)
virtual bool IsKeyWord(const char *sKeyWord)
SubVectorHandler & InitialAssRes(SubVectorHandler &WorkVec, const VectorHandler &XCurr)
VariableSubMatrixHandler & InitialAssJac(VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
p_i_get_num_priv_data i_get_num_priv_data
virtual void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
virtual const char * GetStringWithDelims(enum Delims Del=DEFAULTDELIM, bool escape=true)
virtual unsigned int iGetNumDof(void) const
p_before_predict before_predict
static VariableSubMatrixHandler & int_initial_ass_jac(LoadableElem *, VariableSubMatrixHandler &WorkMat, const VectorHandler &)
static void int_before_predict(const LoadableElem *, VectorHandler &, VectorHandler &, VectorHandler &, VectorHandler &)
static unsigned int int_i_get_priv_data_idx(const LoadableElem *, const char *s)
static void int_after_convergence(const LoadableElem *, const VectorHandler &, const VectorHandler &)
static void int_set_initial_value(const LoadableElem *, VectorHandler &)
p_d_get_priv_data d_get_priv_data
unsigned long loadable_version
virtual void SetInitialValue(VectorHandler &X)
#define ASSERT(expression)
p_initial_ass_jac initial_ass_jac
static void int_initial_work_space_dim(const LoadableElem *, integer *piNumRows, integer *piNumCols)
p_after_convergence after_convergence
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
p_initial_ass_res initial_ass_res
virtual doublereal dGetPrivData(unsigned int i) const
virtual void BeforePredict(VectorHandler &X, VectorHandler &XP, VectorHandler &XPrev, VectorHandler &XPPrev) const
static std::stack< cleanup * > c
static void int_destroy(LoadableElem *)
void BindCalls(DataManager *pDM, MBDynParser &HP)
static unsigned int int_i_get_num_dof(const LoadableElem *)
LoadableElem(unsigned int uLabel, const DofOwner *pDO, DataManager *pDM, MBDynParser &HP)
#define SAFESTRDUP(pnt, src)
virtual unsigned int iGetNumPrivData(void) const
virtual void Update(const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
static DofOrder::Order int_set_dof(const LoadableElem *, unsigned int)
static void int_ass_mats(LoadableElem *, VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &, const VectorHandler &)
#define LOADABLE_VERSION_OUT(v)
virtual void AfterPredict(VectorHandler &X, VectorHandler &XP)
static void int_after_predict(const LoadableElem *, VectorHandler &, VectorHandler &)
virtual void SetOutputFlag(flag f=flag(1))
static void int_update(LoadableElem *, const VectorHandler &, const VectorHandler &)
virtual HighParser::ErrOut GetLineData(void) const
unsigned int GetLabel(void) const
static unsigned int int_i_get_num_priv_data(const LoadableElem *)
static void int_get_connected_nodes(const LoadableElem *pEl, std::vector< const Node * > &connectedNodes)
static void int_output(const LoadableElem *, OutputHandler &)
p_initial_work_space_dim initial_work_space_dim
virtual void Resize(integer iNewSize)=0
p_after_predict after_predict
virtual void AfterConvergence(const VectorHandler &X, const VectorHandler &XP)
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const