FEDEM Solver  R8.0
Source code of the dynamics solver
FiUserElmPlugin.H
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: 2023 SAP SE
2 //
3 // SPDX-License-Identifier: Apache-2.0
4 //
5 // This file is part of FEDEM - https://openfedem.org
7 
13 #ifndef FI_USER_ELM_PLUGIN_H
14 #define FI_USER_ELM_PLUGIN_H
15 
18 
19 
25  public FFaSingelton<FiUserElmPlugin>
26 {
27 public:
32  bool validate(const std::string& lib, int nchar = 0, char* sign = NULL);
37  bool getSign(int nchar, char* sign, bool silence = false);
38 
43  int getElementTypes(int maxUE, int* eType);
49  int getTypeName(int eType, int nchar, char* name);
50 
53  int init(const double* gdata);
61  int init(int eId, int eType, int nenod, int nedof, int& niwork, int& nrwork);
71  int init(int eId, int eType, int nenod, int nedof,
72  const double* X, const double* T, int* iwork, double* rwork);
73 
82  int mass(int eId, int eType, int nenod,
83  const double* X, int* iwork, double* rwork, double& mass);
84 
107  int update(int eId, int eType, int nenod, int nedof,
108  const double* X, const double* T,
109  const double* V, const double* A, int* iwork, double* rwork,
110  double* Kt, double* Ct, double* M,
111  double* Fs, double* Fd, double* Fi, double* Q,
112  double t, double dt, int istep, int iter);
113 
123  int origin(int eId, int eType, int nenod,
124  const double* X, const double* T,
125  const int* iwork, const double* rwork, double* Tlg);
126 
137  int result(int eId, int eType, int idx,
138  const int* iwork, const double* rwork, int nchar, char* name);
148  int result(int eId, int eType, int idx,
149  const int* iwork, const double* rwork, double& value);
150 
151 private:
152  friend class FFaSingelton<FiUserElmPlugin>;
153 };
154 
155 #endif
Management of dynamic loading of shared object libraries.
Base class for dynamic loading of shared object libraries.
Definition: FFaDynamicLibraryBase.H:37
Template class for singleton classes.
Definition: FFaSingelton.H:20
Singleton class for user-defined element plugins.
Definition: FiUserElmPlugin.H:26
int origin(int eId, int eType, int nenod, const double *X, const double *T, const int *iwork, const double *rwork, double *Tlg)
Calculates the local origin of a user-defined element.
Definition: FiUserElmPlugin.C:335
int update(int eId, int eType, int nenod, int nedof, const double *X, const double *T, const double *V, const double *A, int *iwork, double *rwork, double *Kt, double *Ct, double *M, double *Fs, double *Fd, double *Fi, double *Q, double t, double dt, int istep, int iter)
Updates the state of a given user-defined element.
Definition: FiUserElmPlugin.C:289
int result(int eId, int eType, int idx, const int *iwork, const double *rwork, int nchar, char *name)
Returns the name of a result quantity of a user-defined element.
Definition: FiUserElmPlugin.C:408
int getTypeName(int eType, int nchar, char *name)
Returns the name of an element type.
Definition: FiUserElmPlugin.C:120
int init(const double *gdata)
Initializes the plugin.
Definition: FiUserElmPlugin.C:153
bool getSign(int nchar, char *sign, bool silence=false)
Returns the signature string of the loaded plugin.
Definition: FiUserElmPlugin.C:61
int mass(int eId, int eType, int nenod, const double *X, int *iwork, double *rwork, double &mass)
Calculates the total mass for a given user-defined element.
Definition: FiUserElmPlugin.C:245
int getElementTypes(int maxUE, int *eType)
Returns a list of element types defined in the plugin.
Definition: FiUserElmPlugin.C:93
bool validate(const std::string &lib, int nchar=0, char *sign=NULL)
Checks if the named library can be loaded as a plugin.
Definition: FiUserElmPlugin.C:49
Definition: FiSwappedIO.H:15