void ALpxx_CleanMemory(void)
Free all memory allocated within ALpxx module.
python usage : ALpxx_CleanMemory()
void ALpxx_LoadTactors(void)
load ALpxx from MAILx and initialize existing_entities
python usage : ALpxx_LoadTactors()
void ALpxx_PushPreconNodes(void)
set ALpxx supporting nodes as precon
python usage : ALpxx_PushPreconNodes()
void ASpxx_CleanMemory(void)
Free all memory allocated within ASpxx module.
python usage : ASpxx_CleanMemory()
void ASpxx_LoadTactors(void)
Load ASpxx from MAILx and Initialize existing_entities.
python usage : ASpxx_LoadTactors()
void ASpxx_PushPreconNodes(void)
set ASpxx supporting nodes as precon
python usage : ASpxx_PushPreconNodes()
void CDCDx_CleanMemory(void)
Free all memory allocated within CDCDx module.
python usage : CDCDx_CleanMemory()
void CDCDx_DisplayOutVlocRloc(void)
display local values of all CDCDx contacts
python usage : CDCDx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void CDCDx_DisplayProxTactors(void)
display detected contacts
python usage : CDCDx_DisplayProxTactors()
void CDCDx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, local frame and forces
python usage : array = CDCDx_GetAll() array (double 2D-array) : mechanical data
int CDCDx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan CDCDx contact
python usage : iantac = CDCDx_GetAntagonistTactId(icdan)
int CDCDx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan CDCDx contact
python usage : icdtac = CDCDx_GetCandidatTacId(icdan)
int CDCDx_GetNbCDCDx(void)
return the number of CDCDx contact found
python usage : nb_CDCDx = CDCDx_GetNbCDCDx() nb_CDCDx (integer) : number of CDCDx found
int CDCDx_GetNbvCDCDx(void)
return the number of CDCDx stored
python usage : nb_vCDCDx = CDCDx_GetNbvCDCDx() nb_vCDCDx (integer) : number of CDCDx stored
void CDCDx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : CDCDx_ReadIniVlocRloc(step=0)
void CDCDx_RecupRloc(void)
recup values of local contact forces from stored values
python usage : CDCDx_RecupRloc()
void CDCDx_SelectProxTactors(int reset=0)
contact detection between CYLND and CYLND tactors
python usage : CDCDx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void CDCDx_SetContactRadius(double radius)
define the contact radius (experimental)
python usage : CDCDx_SetContactRadius(radius)
void CDCDx_SetNumberInterByContact(int nb_interactions)
define the number of interaction by contact (experimental)
python usage : CDCDx_SetNumberInterByContact(nb_interactions)
void CDCDx_SetXPeriodicCondition(double xperiod)
initialise data for simulation using periodic condition along X
python usage : CDCDx_SetXPeriodicCondition(xperiod)
void CDCDx_SetYPeriodicCondition(double yperiod)
initialise data for simulation using periodic condition along Y
python usage : CDCDx_SetYPeriodicCondition(yperiod)
void CDCDx_SmoothForceComputation(void)
computes smooth contact forces (if any)
python usage : CDCDx_SmoothForceComputation()
void CDCDx_StockRloc(void)
store values of local contact forces
python usage : CDCDx_StockRloc()
void CDCDx_WriteLastVlocRloc(void)
write last local values of all CDCDx contacts
python usage : CDCDx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void CDCDx_WriteOutVlocRloc(void)
write local values of all CDCDx contacts
python usage : CDCDx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void CDPLx_CleanMemory(void)
Free all memory allocated within CDPLx module.
python usage : CDPLx_CleanMemory()
void CDPLx_DisplayOutVlocRloc(void)
display local values of all CDPLx contacts
python usage : CDPLx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void CDPLx_DisplayProxTactors(void)
display contacts
python usage : CDPLx_DisplayProxTactors()
void CDPLx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, local frame and forces
python usage : array = CDPLx_GetAll() array (double 2D-array) : mechanical data
int CDPLx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan CDPLx contact
python usage : iantac = CDPLx_GetAntagonistTactId(icdan)
int CDPLx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan CDPLx contact
python usage : icdtac = CDPLx_GetCandidatTacId(icdan)
int CDPLx_GetNbCDPLx(void)
return the number of CDPLx contact found
python usage : nb_CDPLx = CDPLx_GetNbCDPLx()
nb_CDPLx (integer) : number of CDPLx found
int CDPLx_GetNbvCDPLx(void)
return the number of CDPLx stored
python usage : nb_vCDPLx = CDPLx_GetNbvCDPLx() nb_vCDPLx (integer) : number of CDPLx stored
void CDPLx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : CDPLx_ReadIniVlocRloc(step=0)
void CDPLx_RecupRloc(void)
recover values of local contact forces from stored values
python usage : CDPLx_RecupRloc()
void CDPLx_SelectProxTactors(int reset=0)
contact detection between CYLND and PLANx tactors
python usage : CDPLx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void CDPLx_SmoothForceComputation(void)
computes smooth forces (if any)
python usage : CDPLx_SmoothForceComputation()
void CDPLx_StockRloc(void)
stores values of local contact forces
python usage : CDPLx_StockRloc()
void CDPLx_WriteLastVlocRloc(void)
write last local values of all CDPLx contacts
python usage : CDPLx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void CDPLx_WriteOutVlocRloc(void)
write local values of all CDPLx contacts
python usage : CDPLx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void CLALp_CleanMemory(void)
Free all memory allocated within CLALp module.
python usage : CLALp_CleanMemory()
void CLALp_DisplayOutVlocRloc(void)
display local values of all CLALp contacts
python usage : CLALp_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void CLALp_DisplayProxTactors(void)
display contacts
python usage : CLALp_DisplayProxTactors()
void CLALp_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = CLALp_GetAll() array (double 2D-array) : mechanical data
void CLALp_GetAllInternal(double **matrix_out, int *dim1, int *dim2)
return contact point internal variables
python usage : array = CLALp_GetAllInternal() array (double 2D-array) : mechanical data
int CLALp_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan CLALp contact
python usage : iantac = CLALp_GetAntagonistTactId(icdan)
int CLALp_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan CLALp contact
python usage : icdtac = CLALp_GetCandidatTacId(icdan)
int CLALp_GetNbCLALp(void)
return the number of CLALp contact found
python usage : nb_CLALp = CLALp_GetNbCLALp() nb_CLALp (integer) : number of CLALp found
int CLALp_GetNbRecup(void)
return the number of recup CLALp contact found
python usage : nb_CLALp = CLALp_GetNbRecup() nb_CLALp (integer) : number of recup CLALp found
int CLALp_GetNbRough(void)
return the number of rough CLALp contact found
python usage : nb_CLALp = CLALp_GetNbRough() nb_CLALp (integer) : number of rough CLALp found
int CLALp_GetNbvCLALp(void)
return the number of CLALp stored
python usage : nb_vCLALp = CLALp_GetNbvCLALp() nb_vCLALp (integer) : number of CLALp stored
void CLALp_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : CLALp_ReadIniVlocRloc(step=0)
void CLALp_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : CLALp_RecupRloc()
void CLALp_SelectProxTactors(int reset=0)
contact detection between CLxxx and ALpxx tactors
python usage : CLALp_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list If reset not equal to 0, the initialization flag is reset and detection skipped
void CLALp_SetNonSymetricDetection(void)
this function allows non symetric detection i.e. only one interaction is kept when two bodies with candidate and antagonist contactors see each other
python usage : CLALp_SetNonSymetricDetection(void)
void CLALp_StockRloc(void)
stock values of local contact forces for the next time step
python usage : CLALp_StockRloc()
void CLALp_Trim(void)
trim contact (only contact within an line - not with extremities)
python usage : CLALp_Trim()
void CLALp_UpdateWear(void)
python usage : CLALp_UpdateWear()
void CLALp_WriteLastVlocRloc(void)
write last local values of all CLALp contacts
python usage : CLALp_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void CLALp_WriteOutVlocRloc(void)
write local values of all CLALp contacts
python usage : CLALp_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void CLJCx_CleanMemory(void)
Free all memory allocated within CLJCx module.
python usage : CLJCx_CleanMemory()
void CLJCx_DisplayOutVlocRloc(void)
display local values of all CLJCx contacts
python usage : CLJCx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void CLJCx_DisplayProxTactors(void)
display contacts
python usage : CLJCx_DisplayProxTactors()
void CLJCx_GetAll(double **matrix_out, int *dim1, int *dim2)
return some mechanical ...
python usage : array = CLJCx_GetAll() array (double 2D-array) : mechanical data (nb_CLJCx,6)
int CLJCx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan CLJCx contact
python usage : iantac = CLJCx_GetAntagonistTactId(icdan)
int CLJCx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan CLJCx contact
python usage : icdtac = CLJCx_GetCandidatTacId(icdan)
int CLJCx_GetNbCLJCx(void)
return the number of CLJCx contact found
python usage : nb_CLJCx = CLJCx_GetNbCLJCx() nb_CLJCx (integer) : number of CLJCx found
int CLJCx_GetNbvCLJCx(void)
return the number of CLJCx stored
python usage : nb_vCLJCx = CLJCx_GetNbvCLJCx() nb_vCLJCx (integer) : number of CLJCx stored
void CLJCx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : CLJCx_ReadIniVlocRloc(step=0)
void CLJCx_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : CLJCx_RecupRloc()
void CLJCx_SelectProxTactors(int reset=0)
contact detection between CLxxx and JCxxx tactors
python usage : CLJCx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void CLJCx_StockRloc(void)
stock values of local contact forces for the next time step
python usage : CLJCx_StockRloc()
void CLJCx_WriteLastVlocRloc(void)
write last local values of all CLJCx contacts
python usage : CLJCx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void CLJCx_WriteOutVlocRloc(void)
write local values of all CLJCx contacts
python usage : CLJCx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void CLxxx_CleanMemory(void)
Free all memory allocated within CLxxx module.
python usage : CLxxx_CleanMemory()
void CLxxx_LoadTactors(void)
load CLxxx from MAILx and Initialize existing_entities
python usage : CLxxx_LoadTactors()
void CLxxx_PushPreconNodes(void)
set CLxxx supporting nodes as precon
python usage : CLxxx_PushPreconNodes()
void CLxxx_SetNbNodesByCLxxx(int ivalue)
Set the number of CL nodes by edges. It helps to compute the length associated to a contact node. Default is 2.
python usage : CLxxx_SetNbNodesByCLxxx(nb_nodes)
void CSASp_CleanMemory(void)
Free all memory allocated within CSASp module.
python usage : CSASp_CleanMemory()
void CSASp_DisplayOutVlocRloc(void)
display local values of all CSASp contacts
python usage : CSASp_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void CSASp_DisplayProxTactors(void)
display contacts
python usage : CSASp_DisplayProxTactors()
void CSASp_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, local frame and forces
python usage : array = CSASp_GetAll() array (double 2D-array) : mechanical data
void CSASp_GetAllInternal(double **matrix_out, int *dim1, int *dim2)
return contact point internal variables
python usage : array = CSASp_GetAllInternal() array (double 2D-array) : mechanical data
int CSASp_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan CSASp contact
python usage : iantac = CSASp_GetAntagonistTactId(icdan)
int CSASp_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan CSASp contact
python usage : icdtac = CSASp_GetCandidatTacId(icdan)
int CSASp_GetNbCSASp(void)
return the number of CSASp contact found
python usage : nb_CSASp = CSASp_GetNbCSASp()
nb_CSASp (integer) : number of CSASp found
int CSASp_GetNbvCSASp(void)
return the number of CSASp stored
python usage : nb_vCSASp = CSASp_GetNbvCSASp() nb_vCSASp (integer) : number of CSASp stored
void CSASp_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : CSASp_ReadIniVlocRloc(step=0)
void CSASp_RecupRloc(void)
recover values of local contact forces from stored values
python usage : CSASp_RecupRloc()
void CSASp_SelectProxTactors(int reset=0)
contact detection between CSxxx and ASpxx tactors
python usage : CSASp_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list If reset not equal to 0, the initialization flag is reset and detection skipped
void CSASp_SkipAutoContact(void)
avoid CSxxx/ASpxx contact detection when they belong to the same entity
python usage : CSASp_SkipAutoContact()
void CSASp_StockRloc(void)
stores values of local contact forces
python usage : CSASp_StockRloc()
void CSASp_WriteLastVlocRloc(void)
write last local values of all CSASp contacts
python usage : CSASp_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void CSASp_WriteOutVlocRloc(void)
write local values of all CSASp contacts
python usage : CSASp_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void CSPRx_CleanMemory(void)
Free all memory allocated within CSPRx module.
python usage : CSPRx_CleanMemory()
void CSPRx_DisplayOutVlocRloc(void)
display local values of all CSPRx contacts
python usage : CSPRx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void CSPRx_DisplayProxTactors(void)
display contacts
python usage : CSPRx_DisplayProxTactors()
void CSPRx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = CSPRx_GetAll() array (double 2D-array) : mechanical data
int CSPRx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan CSPRx contact
python usage : iantac = CSPRx_GetAntagonistTactId(icdan)
int CSPRx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan CSPRx contact
python usage : icdtac = CSPRx_GetCandidatTacId(icdan)
void CSPRx_GetInfo(int icdan, int **i4_vector, int *i4_size)
return contact info for the icdan CSPRx contact
python usage : a = CSPRx_GetInfo(icdan)
int CSPRx_GetNbCSPRx(void)
Get the number of CSPRx contact found.
python usage : nb_CSPRx = CSPRx_GetNbCSPRx()
nb_CSPRx (integer) : number of CSPRx found
int CSPRx_GetNbvCSPRx(void)
return the number of CSPRx stored
python usage : nb_vCSPRx = CSPRx_GetNbvCSPRx() nb_vCSPRx (integer) : number of CSPRx stored
void CSPRx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : CSPRx_ReadIniVlocRloc(step=0)
void CSPRx_RecupRloc(void)
recover values of local contact forces from stored values
python usage : CSPRx_RecupRloc()
void CSPRx_SelectProxTactors(int reset=0)
contact detection between CSxxx and PRxxx tactors
python usage : CSPRx_SelectProxTactors(int reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void CSPRx_Smoothing(void)
smooth contact reaction
python usage : CSPRx_Smmothing()
void CSPRx_StockRloc(void)
stores values of local contact forces
python usage : CSPRx_StockRloc()
void CSPRx_Trim(void)
trim contact (only node face contact)
python usage : CSPRx_Trim()
void CSPRx_WriteLastVlocRloc(void)
write last local values of all CSPRx contacts
python usage : CSPRx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void CSPRx_WriteOutVlocRloc(void)
write local values of all CSPRx contacts
python usage : CSPRx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void CSpxx_ApplyPressure(int ivalue, double rvalue)
Apply an external pressure on a CSpxx.
python usage : CSpxx_ApplyPressure(ivalue,rvalue)
void CSpxx_ApplySurfaceLoad(int ivalue, double *rvector_in, int rlength_in)
void CSxxx_AddReac(char *cvalue1_c, int ivalue, double *rvector_in, int rlength_in)
Apply an external reaction on a CSxxx.
python usage : CSxxx_AddReac(datatype, iCSxxx, reac)
void CSxxx_CleanMemory(void)
Free all memory allocated within CSxxx module.
python usage : CSxxx_CleanMemory()
void CSxxx_FlipOrientation(int ibdyty)
Flip normal of all CSxxx of a given MAILx body.
python usage : CSxxx_FlipOrientation(ibdyty)
void CSxxx_FlipOrientationOnePatch(int ibdyty, int icspxx)
Flip normal of CSxxx belonging to given patch of a given MAILx body.
python usage : CSxxx_FlipOrientationOnePatch(ibdyty,icspxx)
void CSxxx_LoadTactors(void)
Load CSxxx from MAILx and Initialize existing_entities.
python usage : CSxxx_LoadTactors()
void CSxxx_PushPreconNodes(void)
set CSxxx supporting nodes as precon
python usage : CSxxx_PushPreconNodes()
void CSxxx_SetQuadrature(int ivalue)
Set the contact quadrature rule of a CSxxx face. It helps to compute the surface associated to a contact node.
python usage : CSxxx_SetQuadrature(ivalue)
void CSxxx_SetShrink(double shrink)
shrink position of nodes in CSxxx contactors
python usage : CSxxx_SetShrink(shrink)
void CYLND_CleanMemory(void)
Free all memory allocated within CYLND module.
python usage : CYLND_CleanMemory()
int CYLND_GetNbCYLND(void)
Get the number of CYLND.
python usage : nb_CYLND = CYLND_GetNbCYLND()
nb_CYLND (integer) : the number of CYLND
void CYLND_GetNbPointOutlines(int **pointer_out, int *length)
Get the list of cumulated outline points number.
python usage : nb_pointOutlines = CYLND_GetNbPointOutlines() nb_pointOutlines (integer array) : the cumulated number of outline points of the CYLND
int CYLND_GetNbScalarFields(void)
Get the number of scalar fields of a CYLND.
python usage : nb_scalarfields = CYLND_GetNbScalarFields() nb_scalarfields (integer) : the number of scalar fields of a CYLND
void CYLND_GetPtrAllConnectivities(int **pointer_out, int *length)
Get a reference on the connectivities of all CYLND.
usage : connec = CYLND_GetPtrAllConnectivities() connec (integer array) : a reference on all_connectivities
void CYLND_GetPtrCYLND2BDYTY(int **pointer_out, int *dim1, int *dim2)
return a pointer onto the map cylnd2bdyty
python usage : cylnd2bdyty = CYLND_GetPtrCYLND2BDYTY()
cylnd2bdyty (integer array) : reference on map between cylnd rank and body rank
void CYLND_InitOutlines(double **pointer_out, int *dim1, int *dim2)
Get a reference on the outlines of all CYLND.
usage : outlines = CYLND_InitOutlines() outlines (double array) : a reference on outlines_CYLND
void CYLND_InitScalarFields(double **pointer_out, int *dim1, int *dim2)
Get a reference on the scalar fields of all CYLND.
usage : scalarfields = CYLND_InitScalarfields() scalarfields (double array) : reference on scalarfields_CYLND array
int CYLND_IsVisible(int itacty)
return if a given contactor is attached to a visible body
python usage : visible = CYLND_IsVisible(itacty)
void CYLND_LoadTactors(void)
load CYLND from RBDY3 and initialize existing_entites
python usage : CYLND_LoadTactors()
void CYLND_UpdatePostdata(void)
Update values of outlines_CYLND and scalarfields_CYLND pointers.
usage : CYLND_UpdatePostdata
void DISKL_CleanMemory(void)
Free all memory allocated within DISKL module.
python usage : DISKL_CleanMemory()
void DISKL_LoadTactors(void)
Load DISKL from MAILx and Initialize existing_entities.
python usage : DISKL_LoadTactors()
void DISKL_PushPreconNodes(void)
declare the DISKL supporting nodes as precon
python usage : DISKL_PushPreconNodes()
void DISKx_CleanMemory(void)
Free all memory allocated within DISKx module.
python usage : DISKx_CleanMemory()
void DISKx_GetContactorColor(int itact, char **string_out, int *string_size)
Get the color of a given DISKx.
python usage : color = DISKx_GetContactorColor(itact)
void DISKx_GetContactorCoor(int itacty, double **r8_vector, int *r8_size)
get coordinates of the center of a given DISKx
usage : vector = DISKx_GetContactorCoor(itacty)
double DISKx_GetContactorRadius(int itact)
Get the radius of a given DISKx.
python usage : radius = DISKx_GetContactorRadius(itact)
void DISKx_GetDISKx2RBDY2(int **i4_vector, int *i4_size)
return a copy of the map diskx2rbdy2
python usage : diskx2rbdy2 = DISKx_GetDISKx2RBDY2() diskx2rbdy2 (integer array) : map between diskx rank and body rank
double DISKx_GetMaxRadius(void)
Get the max radius of DISKx in the container.
python usage : radius = DISKx_GetMaxRadius()
radius (double) : the max radius of DISKx in the contactor
double DISKx_GetMeanRadius(void)
Get the mean radius of DISKx in the container.
python usage : radius = DISKx_GetMeanRadius()
radius (double) : the mean radius of DISKx in the container
double DISKx_GetMinRadius(void)
Get the min radius of DISKx in the container.
python usage : radius = DISKx_GetMinRadius()
radius (double) : the min radius of DISKx in the container
int DISKx_GetNbDISKx(void)
Get the number of DISKx in the container.
python usage : nb_diskx = DISKx_GetNbDISKx()
nb_DISKx (integer) : the number of DISKx in container
void DISKx_GetNbPointOutlines(int **pointer_out, int *length)
Get the list of cumulated outline points number.
python usage : nb_pointOutlines = DISKx_GetNbPointOutlines() nb_pointOutlines (integer array) : the cumulated number of outline points of the DISKx
int DISKx_GetNbScalarFields(void)
Get the number of scalar fields of a DISKx.
python usage : nb_scalarfields = DISKx_GetNbScalarFields() nb_scalarfields (integer) : the number of scalar fields of a DISKx
void DISKx_GetPtrDISKx2RBDY2(int **pointer_out, int *dim1, int *dim2)
return a pointer onto the map diskx2rbdy2
python usage : diskx2rbdy2 = DISKx_GetPtrDISKx2RBDY2()
diskx2rbdy2 (integer array) : reference on map between diskx rank and body rank
double DISKx_GetRadius(int ibdyty)
get radius of the DISKx owned by body ibdyty (0 if doesn’t exist). Doesn’t work properly with clusters
python usage : radius = DISKx_GetRadius(ibdyty)
void DISKx_InitOutlines(double **pointer_out, int *dim1, int *dim2)
Get a reference on the outlines of all DISKx.
usage : outlines = DISKx_InitOutlines() outlines (double array) : a reference on outlines_DISKx
void DISKx_InitScalarFields(double **pointer_out, int *dim1, int *dim2)
Get a reference on the scalar fields of all DISKx.
usage : scalarfields = DISKx_InitScalarfields() scalarfields (double array) : reference on scalarfields_DISKx array
void DISKx_LoadTactors(void)
load DISKx from RBDY2 file and initialize existing_entites
python usage : DISKx_LoadTactors()
void DISKx_UpdatePostdata(void)
Update values of outlines_DISKx and scalarfields_DISKx pointers.
usage : DISKx_UpdatePostdata
void DISPx_CleanMemory(void)
Free all memory allocated within DISPx module.
python usage : DISPx_CleanMemory()
char * DISPx_GetContactorColor(int itact)
Get the color of a given DISPx.
python usage : color = DISPx_GetContactorColor(itact)
double DISPx_GetContactorRadius(int itact)
Get the radius of a given DISPx.
python usage : radius = DISPx_GetContactorRadius(itact)
void DISPx_GetDISPx2RBDY2(int **i4_vector, int *i4_size)
return the table dispx2rbdy2
python usage : dispx2rbdy2 = DISPx_GetDISPx2RBDY2() dispx2rbdy2 (integer array) : map between dispx rank and body rank
double DISPx_GetMaxRadius(void)
Get the max radius of DISPx contactors.
python usage : max_radius = DISPx_GetMaxRadius()
max_radius (double) : the max radius of DISPx in the contactor
double DISPx_GetMeanRadius(void)
Get the mean radius of DISPx contactors.
python usage : mean_radius = DISPx_GetMeanRadius()
mean_radius (double) : the mean radius of DISPx in the container
double DISPx_GetMinRadius(void)
Get the min radius of DISPx contactors.
python usage : min_radius = DISPx_GetMinRadius()
radius (double) : the min radius of DISPx in the container
int DISPx_GetNbDISPx(void)
Get the number of DISPx in container.
python usage : nb_DISPx = DISPx_GetNbDISPx()
nb_DISPx (integer) : the number of DISPx
void DISPx_GetNbPointOutlines(int **pointer_out, int *length)
Get the list of cumulated outline points number.
python usage : nb_pointOutlines = DISPx_GetNbPointOutlines() nb_pointOutlines (integer array) : the cumulated number of outline points of the DISPx
int DISPx_GetNbScalarFields(void)
Get the number of scalar fields of a DISPx.
python usage : nb_scalarfields = DISPx_GetNbScalarFields() nb_scalarfields (integer) : the number of scalar fields of a DISPx
void DISPx_GetPtrDISPx2RBDY2(int **pointer_out, int *dim1, int *dim2)
return a pointer onto the map dispx2rbdy2
python usage : dispx2rbdy2 = DISPx_GetPtrDISPx2RBDY2()
dispx2rbdy2 (integer array) : reference on map between diskx rank and body rank
void DISPx_InitOutlines(double **pointer_out, int *dim1, int *dim2)
Get a reference on the outlines of all DISPx.
usage : outlines = DISPx_InitOutlines() outlines (double array) : a reference on outlines_DISPx
void DISPx_InitScalarFields(double **pointer_out, int *dim1, int *dim2)
Get a reference on the scalar fields of all DISPx.
usage : scalarfields = DISPx_InitScalarfields() scalarfields (double array) : reference on scalarfields_DISPx array
void DISPx_LoadTactors()
load DISPx from file and initialize existing_entites
python usage : DISPx_LoadTactors()
void DISPx_UpdatePostdata(void)
Update values of outlines_DISPx and scalarfields_DISPx pointers.
usage : DISPx_UpdatePostdata
void DKALp_CleanMemory(void)
Free all memory allocated within DKALp module.
python usage : DKALp_CleanMemory()
void DKALp_DisplayOutVlocRloc(void)
display local values of all DKALp contacts
python usage : DKALp_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void DKALp_DisplayProxTactors(void)
display contacts
python usage : DKALp_DisplayProxTactors()
void DKALp_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = DKALp_GetAll() array (double 2D-array) : mechanical data
int DKALp_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan DKALp contact
python usage : iantac = DKALp_GetAntagonistTactId(icdan)
int DKALp_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan DKALp contact
python usage : icdtac = DKALp_GetCandidatTacId(icdan)
int DKALp_GetNbDKALp(void)
return the number of DKALp contact found
python usage : nb_DKALp = DKALp_GetNbDKALp() nb_DKALp (integer) : number of DKALp found
int DKALp_GetNbvDKALp(void)
return the number of DKALp stored
python usage : nb_vDKALp = DKALp_GetNbvDKALp() nb_vDKALp (integer) : number of DKALp stored
void DKALp_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : DKALp_ReadIniVlocRloc(step=0)
void DKALp_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : DKALp_RecupRloc()
void DKALp_SelectProxTactors(int reset=0)
contact detection between DISKx and ALpxx tactors
python usage : DKALp_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void DKALp_StockRloc(void)
stock values of local contact forces for the next time step
python usage : DKALp_StockRloc()
void DKALp_WriteLastVlocRloc(void)
write last local values of all DKALp contacts
python usage : DKALp_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void DKALp_WriteOutVlocRloc(void)
write local values of all DKALp contacts
python usage : DKALp_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void DKDKL_CleanMemory(void)
Free all memory allocated within DKDKL module.
python usage : DKDKL_CleanMemory()
void DKDKL_DisplayOutVlocRloc(void)
display local values of all DKDKL contacts
python usage : DKDKL_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void DKDKL_DisplayProxTactors(void)
display contacts
python usage : DKDKL_DisplayProxTactors()
void DKDKL_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = DKDKL_GetAll() array (double 2D-array) : mechanical data
int DKDKL_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan DKDKL contact
python usage : iantac = DKDKL_GetAntagonistTactId(icdan)
int DKDKL_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan DKDKL contact
python usage : icdtac = DKDKL_GetCandidatTacId(icdan)
int DKDKL_GetNbDKDKL(void)
return the number of DKDKL contact found
python usage : nb_DKDKL = DKDKL_GetNbDKDKL() nb_DKDKL (integer) : number of DKDKL found
int DKDKL_GetNbvDKDKL(void)
return the number of DKDKL stored
python usage : nb_vDKDKL = DKDKL_GetNbvDKDKL() nb_vDKDKL (integer) : number of DKDKL stored
void DKDKL_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : DKDKL_ReadIniVlocRloc(step=0)
void DKDKL_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : DKDKL_RecupRloc()
void DKDKL_SelectProxTactors(int reset=0)
contact detection between DISKx and DISKL tactors
python usage : DKDKL_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void DKDKL_SetPeriodicCondition(double period)
initialize data for simulation using periodic condition
python usage : DKDKL_SetPeriodicCondition(period)
void DKDKL_SmoothForceComputation(void)
explicit computation of contact forces
python usage : DKDKL_SmoothForceComputation
void DKDKL_StockRloc(void)
stock values of local contact forces for the next time step
python usage : DKDKL_StockRloc()
void DKDKL_WriteLastVlocRloc(void)
write last local values of all DKDKL contacts
python usage : DKDKL_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void DKDKL_WriteOutVlocRloc(void)
write local values of all DKDKL contacts
python usage : DKDKL_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void DKDKx_CleanMemory(void)
Free all memory allocated within DKDKx module.
python usage : DKDKx_CleanMemory()
void DKDKx_ComputeBetai(void)
compute equivalent damage parameter
python usage : DKDKx_ComputeBetai()
void DKDKx_ComputeCZMEnergy(void)
compute and decompose local contact energy with CZM law
python usage : DKDKx_ComputeCZMEnergy()
void DKDKx_ComputeStress(void)
update surface energy sector
python usage : DKDKx_ComputeStress()
void DKDKx_DisplayOutVlocRloc(void)
display local values of all DKDKx contacts
python usage : DKDKx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void DKDKx_DisplayProxTactors(void)
display contacts
python usage : DKDKx_DisplayProxTactors()
int DKDKx_GetAdjszDKDKx(int icdtac)
number of contact of diskx icdtac
python usage : nb_adj = DKDKx_GetAdjszDKDKx(icdtac)
void DKDKx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = DKDKx_GetAll() array (double 2D-array) : mechanical data
void DKDKx_GetAllInternal(double **matrix_out, int *dim1, int *dim2)
return contact point internal variables
python usage : array = DKDKx_GetAllInternal() array (double 2D-array) : mechanical data
int DKDKx_GetAntagonist(int icdtac, int iadj)
return the antagonist identifiant of the contact iadj for tactor icdtac
python usage : iantac = DKDKx_GetAntagonist(icdtac,iadj)
int DKDKx_GetAntagonistId(int icdan)
return the antagonist identifiant for the icdan DKDKx contact
python usage : ianbdy = DKDKx_GetAntagonistId(icdan)
int DKDKx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan DKDKx contact
python usage : iantac = DKDKx_GetAntagonistTactId(icdan)
void DKDKx_GetCZMEnergy(int icdan, double *energy)
Get the CZM energy of a given contact.
int DKDKx_GetCandidatId(int icdan)
return the candidate identifiant for the icdan DKDKx contact
python usage : icdbdy = DKDKx_GetCandidatId(icdan)
int DKDKx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan DKDKx contact
python usage : icdtac = DKDKx_GetCandidatTacId(icdan)
double DKDKx_GetGap(int icdan)
return the gap of icdan DKDKx contact
The function returns the value gapTTbegin of an interaction which represents the gap between two particles in detection position at begining ot time step.
python usage : gap = DKDKx_GetGap(icdan)
void DKDKx_GetGlobal2Local(int ivalue1, double **matrix_out, int *dim1, int *dim2)
return the matrix (copy) allowing to compute relavite velocities from velocities of the bodies in interaction
usage : jacobian_H = DKDKx_GetGlobal2Local(icdan)
void DKDKx_GetInteractions(int **matrix_out, int *dim1, int *dim2)
return the full list of candidate/antagonist couple The vector is ordered as [cd1, an1, cd2, an2, cd3, an3...]
python usage : array = DKDKx_GetInteractions() array (int 2D-array) : list of candidats and antagonists of DKDKx interactions
int DKDKx_GetNbDKDKx(void)
return the number of DKDKx contact found
python usage : nb_DKDKx = DKDKx_GetNbDKDKx() nb_DKDKx (integer) : number of DKDKx found
int DKDKx_GetNbvDKDKx(void)
return the number of DKDKx stored
python usage : nb_DKDKx = DKDKx_GetNbvDKDKx() nb_DKDKx (integer) : number of DKDKx found
int DKDKx_GetOldIndex(int icdan)
return the old index of an interaction
python usage : old_index = DKDKx_GetOldIndex(icdan)
void DKDKx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : DKDKx_ReadIniVlocRloc(step=0)
void DKDKx_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : DKDKx_RecupRloc()
void DKDKx_SelectProxTactors(int reset=0)
contact detection between CLxxx and JCxxx tactors
python usage : DKDKx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void DKDKx_SetPeriodicCondition(double period)
initialize data for simulation using periodic condition
python usage : DKDKx_SetPeriodicCondition(period)
void DKDKx_SetSurfaceSectors(int nbsect)
Set the number of angular sectors of the surface of contactors.
python usage : DKDKx_SetSurfaceSectors(nbsect)
void DKDKx_SmoothForceComputation(void)
explicit computation of contact forces
python usage : DKDKx_SmoothForceComputation()
void DKDKx_StockRloc(void)
stock values of local contact forces for the next time step
python usage : DKDKx_StockRloc()
void DKDKx_UpdateSurfaceEnergySector(void)
update surface energy sector
python usage : DKDKx_UpdateSurfaceEnergySector()
void DKDKx_UseVaVDetection(int nb)
allow to increase the number of contact for a pair cd/an.
python usage : DKDKx_UseVaVDetection(nb)
void DKDKx_WriteLastVlocRloc(void)
write last local values of all DKDKx contacts
python usage : DKDKx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void DKDKx_WriteOutVlocRloc(void)
write local values of all DKDKx contacts
python usage : DKDKx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void DKDPx_CleanMemory(void)
Free all memory allocated within DKDPx module.
python usage : DKDPx_CleanMemory()
void DKDPx_DisplayOutVlocRloc(void)
display local values of all DKDPx contacts
python usage : DKDPx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void DKDPx_DisplayProxTactors(void)
display contacts
python usage : DKDPx_DisplayProxTactors()
void DKDPx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = DKDPx_GetAll() array (double 2D-array) : mechanical data
int DKDPx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan DKDPx contact
python usage : iantac = DKDPx_GetAntagonistTactId(icdan)
int DKDPx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan DKDPx contact
python usage : icdtac = DKDPx_GetCandidatTacId(icdan)
int DKDPx_GetNbDKDPx(void)
return the number of DKDPx contact found
python usage : nb_DKDPx = DKDPx_GetNbDKDPx() nb_DKDPx (integer) : number of DKDPx found
int DKDPx_GetNbvDKDPx(void)
return the number of DKDPx stored
python usage : nb_vDKDPx = DKDPx_GetNbvDKDPx() nb_vDKDPx (integer) : number of DKDPx stored
void DKDPx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : DKDPx_ReadIniVlocRloc(step=0)
void DKDPx_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : DKDPx_RecupRloc()
void DKDPx_SelectProxTactors(int reset=0)
contact detection between DISKx and DISPx tactors
python usage : DKDPx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void DKDPx_StockRloc(void)
stock values of local contact forces for the next time step
python usage : DKDPx_StockRloc()
void DKDPx_WriteLastVlocRloc(void)
write last local values of all DKDPx contacts
python usage : DKDPx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void DKDPx_WriteOutVlocRloc(void)
write local values of all DKDPx contacts
python usage : DKDPx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void DKJCx_CleanMemory(void)
Free all memory allocated within DKJCx module.
python usage : DKJCx_CleanMemory()
void DKJCx_ComputeStress(void)
compute the DKJC contribution to the equivalent stress tensor
python usage : DKJCx_ComputeStress()
void DKJCx_DisplayOutVlocRloc(void)
display local values of all DKJCx contacts
python usage : DKJCx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void DKJCx_DisplayProxTactors(void)
display contacts
python usage : DKJCx_DisplayProxTactors()
void DKJCx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = DKJCx_GetAll() array (double 2D-array) : mechanical data
int DKJCx_GetAntagonistId(int icdan)
return the antagonist identifiant for the icdan DKJCx contac
python usage : ianbdy = DKJCx_GetAntagonistId(icdan)
int DKJCx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan DKJCx contact
python usage : iantac = DKJCx_GetAntagonistTactId(icdan)
int DKJCx_GetCandidatId(int icdan)
return the candidate identifiant for the icdan DKJCx contac
python usage : icdbdy = DKJCx_GetCandidatId(icdan)
int DKJCx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan DKJCx contact
python usage : icdtac = DKJCx_GetCandidatTacId(icdan)
int DKJCx_GetNbDKJCx(void)
return the number of DKJCx contact found
python usage : nb_DKJCx = DKJCx_GetNbDKJCx() nb_DKJCx (integer) : number of DKJCx found
int DKJCx_GetNbvDKJCx(void)
return the number of DKJCx stored
python usage : nb_vDKJCx = DKJCx_GetNbvDKJCx() nb_vDKJCx (integer) : number of DKJCx stored
void DKJCx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : DKJCx_ReadIniVlocRloc(step=0)
void DKJCx_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : DKJCx_RecupRloc()
void DKJCx_SelectProxTactors(int reset=0)
contact detection between DISKx and JONCx tactors
python usage : DKJCx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void DKJCx_SetSurfaceSectors(int nbsect)
Set the number of angular sectors of the surface of contactors.
python usage : DKJCx_SetSurfaceSectors(nbsect)
void DKJCx_SmoothForceComputation(void)
explicit computation of contact forces
python usage : DKJCx_SmoothForceComputation()
void DKJCx_StockRloc(void)
stock values of local contact forces for the next time step
python usage : DKJCx_StockRloc()
void DKJCx_WriteLastVlocRloc(void)
write last local values of all DKJCx contacts
python usage : DKJCx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void DKJCx_WriteOutVlocRloc(void)
write local values of all DKJCx contacts
python usage : DKJCx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void DKKDx_CleanMemory(void)
Free all memory allocated within DKKDx module.
python usage : DKKDx_CleanMemory()
void DKKDx_DisplayOutVlocRloc(void)
display local values of all DKKDx contacts
python usage : DKKDx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void DKKDx_DisplayProxTactors(void)
display contacts
python usage : DKKDx_DisplayProxTactors()
void DKKDx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = DKKDx_GetAll() array (double 2D-array) : mechanical data
int DKKDx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan DKKDx contact
python usage : iantac = DKKDx_GetAntagonistTactId(icdan)
int DKKDx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan DKKDx contact
python usage : icdtac = DKKDx_GetCandidatTacId(icdan)
int DKKDx_GetNbDKKDx(void)
return the number of DKKDx contact found
python usage : nb_DKKDx = DKKDx_GetNbDKKDx() nb_DKKDx (integer) : number of DKKDx found
int DKKDx_GetNbvDKKDx(void)
return the number of DKKDx stored
python usage : nb_vDKKDx = DKKDx_GetNbvDKKDx() nb_vDKKDx (integer) : number of DKKDx stored
void DKKDx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : DKKDx_ReadIniVlocRloc(step=0)
void DKKDx_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : DKKDx_RecupRloc()
void DKKDx_SelectProxTactors(int reset=0)
contact detection between DISKx and xKSID tactors
python usage : DKKDx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void DKKDx_SetSurfaceSectors(int nbsect)
Set the number of angular sectors of the surface of contactors.
python usage : DKKDx_SetSurfaceSectors(nbsect)
void DKKDx_SmoothForceComputation(void)
explicit computation of contact forces
python usage : DKKDx_SmoothForceComputation()
void DKKDx_StockRloc(void)
stock values of local contact forces for the next time step
python usage : DKKDx_StockRloc()
void DKKDx_WriteLastVlocRloc(void)
write last local values of all DKKDx contacts
python usage : DKKDx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void DKKDx_WriteOutVlocRloc(void)
write local values of all DKKDx contacts
python usage : DKKDx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void DKPDx_CleanMemory(void)
Free all memory allocated within DKPDx module.
python usage : DKPDx_CleanMemory()
void DKPDx_DisplayOutVlocRloc(void)
display local values of all DKPDx contacts
python usage : DKPDx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void DKPDx_DisplayProxTactors(void)
display contacts
python usage : DKPDx_DisplayProxTactors()
void DKPDx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = DKPDx_GetAll() array (double 2D-array) : mechanical data
int DKPDx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan DKPDx contact
python usage : iantac = DKPDx_GetAntagonistTactId(icdan)
int DKPDx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan DKPDx contact
python usage : icdtac = DKPDx_GetCandidatTacId(icdan)
int DKPDx_GetNbDKPDx(void)
return the number of DKPDx contact found
python usage : nb_DKPDx = DKPDx_GetNbDKPDx() nb_DKPDx (integer) : number of DKPDx found
int DKPDx_GetNbvDKPDx(void)
return the number of DKPDx stored
python usage : nb_vDKPDx = DKPDx_GetNbvDKPDx() nb_vDKPDx (integer) : number of DKPDx stored
void DKPDx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : DKPDx_ReadIniVlocRloc(step=0)
void DKPDx_SelectProxTactors(int reset=0)
contact detection between DISKx and xSPID tactors
python usage : DKPDx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void DKPDx_StockRloc(void)
stock values of local contact forces for the next time step
python usage : DKPDx_StockRloc()
void DKPDx_WriteLastVlocRloc(void)
write last local values of all DKPDx contacts
python usage : DKPDx_RecupRloc()
the values written are relative velocity, forces and local frame
python usage : DKPDx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void DKPDx_WriteOutVlocRloc(void)
write local values of all DKPDx contacts
python usage : DKPDx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void DKPLx_CleanMemory(void)
Free all memory allocated within DKPLx module.
python usage : DKPLx_CleanMemory()
void DKPLx_DisplayOutVlocRloc(void)
display local values of all DKPLx contacts
python usage : DKPLx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void DKPLx_DisplayProxTactors(void)
display contacts
python usage : DKPLx_DisplayProxTactors()
void DKPLx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = DKPLx_GetAll() array (double 2D-array) : mechanical data
int DKPLx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan DKPLx contact
python usage : iantac = DKPLx_GetAntagonistTactId(icdan)
int DKPLx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan DKPLx contact
python usage : icdtac = DKPLx_GetCandidatTacId(icdan)
int DKPLx_GetNbDKPLx(void)
return the number of DKPLx contact found
python usage : nb_DKPLx = DKPLx_GetNbDKPLx()
nb_DKPLx (integer) : number of DKPLx found
int DKPLx_GetNbvDKPLx(void)
return the number of DKPLx stored
python usage : nb_vDKPLx = DKPLx_GetNbvDKPLx() nb_vDKPLx (integer) : number of DKPLx stored
void DKPLx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : DKPLx_ReadIniVlocRloc(step=0)
void DKPLx_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : DKPLx_RecupRloc()
void DKPLx_SelectProxTactors(int reset=0)
contact detection between DISKx and POLYG tactors
python usage : DKPLx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void DKPLx_StockRloc(void)
stock values of local contact forces for the next time step
python usage : DKPLx_StockRloc()
void DKPLx_WriteLastVlocRloc(void)
write last local values of all DKPLx contacts
python usage : DKPLx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void DKPLx_WriteOutVlocRloc(void)
write local values of all DKPLx contacts
python usage : DKPLx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void DNLYC_CleanMemory(void)
Free all memory allocated within DNLYC module.
python usage : DNLYC_CleanMemory()
int DNLYC_GetNbDNLYC(void)
Get the number of DNLYC.
python usage : nb_DNLYC = DNLYC_GetNbDNLYC()
nb_DNLYC (integer) : the number of DNLYC
void DNLYC_GetNbPointOutlines(int **pointer_out, int *length)
Get the list of cumulated outline points number.
python usage : nb_pointOutlines = DNLYC_GetNbPointOutlines() nb_pointOutlines (integer array) : the cumulated number of outline points of the DNLYC
int DNLYC_GetNbScalarFields(void)
Get the number of scalar fields of a DNLYC.
python usage : nb_scalarfields = DNLYC_GetNbScalarFields() nb_scalarfields (integer) : the number of scalar fields of a DNLYC
void DNLYC_GetPtrAllConnectivities(int **pointer_out, int *length)
Get a reference on the connectivities of all DNLYC.
usage : connec = DNLYC_GetPtrAllConnectivities() connec (integer array) : a reference on all_connectivities
void DNLYC_GetPtrDNLYC2BDYTY(int **pointer_out, int *dim1, int *dim2)
return a pointer onto the map dnlyc2bdyty
python usage : dnlyc2bdyty = DNLYC_GetPtrDNLYC2BDYTY()
dnlyc2bdyty (integer array) : reference on map between dnlyc rank and body rank
void DNLYC_InitOutlines(double **pointer_out, int *dim1, int *dim2)
Get a reference on the outlines of all DNLYC.
usage : outlines = DNLYC_InitOutlines() outlines (double array) : a reference on outlines_DNLYC
void DNLYC_InitScalarFields(double **pointer_out, int *dim1, int *dim2)
Get a reference on the scalar fields of all DNLYC.
usage : scalarfields = DNLYC_InitScalarfields() scalarfields (double array) : reference on scalarfields_DNLYC array
int DNLYC_IsVisible(int itacty)
return if a given contactor is attached to a visible body
python usage : visible = DNLYC_IsVisible(itacty)
void DNLYC_LoadTactors(void)
load DNLYC from RBDY3 and initialize existing_entites
python usage : DNLYC_LoadTactors()
void DNLYC_UpdatePostdata(void)
Update values of outlines_DNLYC and scalarfields_DNLYC pointers.
usage : DNLYC_UpdatePostdata
void DPALp_CleanMemory(void)
Free all memory allocated within DPALp module.
python usage : DPALp_CleanMemory()
void DPALp_ComputeBox(void)
compute parameters for contact detection
python usage : DPALp_ComputeBox()
void DPALp_DisplayOutVlocRloc(void)
display local values of all DPALp contacts
python usage : DPALp_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void DPALp_DisplayProxTactors(void)
display contacts
python usage : DPALp_DisplayProxTactors()
void DPALp_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = DPALp_GetAll() array (double 2D-array) : mechanical data
int DPALp_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan DPALp contact
python usage : iantac = DPALp_GetAntagonistTactId(icdan)
int DPALp_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan DPALp contact
python usage : icdtac = DPALp_GetCandidatTacId(icdan)
int DPALp_GetNbDPALp(void)
Get the number of DPALp contact found.
python usage : nb_DPALp = DPALp_GetNbDPALp()
nb_DPALp (integer) : number of DPALp found
int DPALp_GetNbvDPALp(void)
return the number of DPALp stored
python usage : nb_vDPALp = DPALp_GetNbvDPALp() nb_vDPALp (integer) : number of DPALp stored
void DPALp_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : DPALp_ReadIniVlocRloc(step=0)
void DPALp_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : DPALp_RecupRloc()
void DPALp_SelectProxTactors(int reset=0)
contact detection between DISKp and ALpxx tactors
python usage : DPALp_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void DPALp_StockRloc(void)
stock values of local contact forces for the next time step
python usage : DPALp_StockRloc()
void DPALp_WriteLastVlocRloc(void)
write last local values of all DPALp contacts
python usage : DPALp_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void DPALp_WriteOutVlocRloc(void)
write local values of all DPALp contacts
python usage : DPALp_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void ExternalModels_CheckProperties(void)
Check consistency of external models data (if any)
python usage : ExternalModels_CheckProperties()
void ExternalModels_CleanMemory(void)
Free all memory allocated within ExternalModels module.
python usage : ExternalModels_CleanMemory()
void ExternalModels_InitModels(void)
Initialize the external models (if any)
python usage : ExternalModels_InitModels()
void Integrator_InitBeta2(double value)
python usage : Integrator_InitBeta2(value)
void Integrator_InitCrankNickolson(double value)
python usage : Integrator_InitCrankNickolson(theta)
void Integrator_InitGear(void)
python usage : Integrator_InitGear()
void Integrator_InitTheta(double value)
python usage : Integrator_InitTheta(theta)
void Integrator_InitVerlet(void)
python usage : Integrator_InitVerlet()
void Integrator_SetContactDetectionConfiguration(double alpha_b, double alpha_e)
set the parameters necessary to define the contact detection configuration (default: 1-theta, 0.)
python usage : Integrator_SetContactDetectionConfiguration(alpha_b,alpha_e)
void JONCx_CleanMemory(void)
Free all memory allocated within JONCx module.
python usage : JONCx_CleanMemory()
int JONCx_GetBodyId(int itacty)
Get the body rank of a given JONCx.
python usage : ibdyty = JONCx_GetBodyId(itacty)
Get the coor of a JONCx.
usage : coor = JONCx_GetCoor(itacty)
int JONCx_GetNbJONCx(void)
Get the number of JONCx in container.
python usage : nb_joncx = JONCx_GetNbJONCx()
nb_joncx (integer) : the number of JONCx in container
void JONCx_GetNbPointOutlines(int **pointer_out, int *length)
Get the list of cumulated outline points number.
python usage : nb_pointOutlines = JONCx_GetNbPointOutlines() nb_pointOutlines (integer array) : the cumulated number of outline points of the JONCx
int JONCx_GetNbScalarFields(void)
Get the number of scalar fields of a JONCx.
python usage : nb_scalarfields = JONCx_GetNbScalarFields() nb_scalarfields (integer) : the number of scalar fields of a JONCx
void JONCx_GetPtrJONCx2RBDY2(int **pointer_out, int *dim1, int *dim2)
return a pointer onto the map joncx2rbdy2
python usage : joncx2rbdy2 = JONCx_GetPtrJONCx2RBDY2()
joncx2rbdy2 (integer array) : reference on map between joncx rank and body/tact rank
Get the shape of a JONCx.
usage : shape = JONCx_GetShape(itacty)
void JONCx_InitOutlines(double **pointer_out, int *dim1, int *dim2)
Get a reference on the outlines of all JONCx.
usage : outlines = JONCx_InitOutlines() outlines (double array) : a reference on outlines_JONCx
void JONCx_InitScalarFields(double **pointer_out, int *dim1, int *dim2)
Get a reference on the scalar fields of all JONCx.
usage : scalarfields = JONCx_InitScalarfields() scalarfields (double array) : reference on scalarfields_JONCx array
void JONCx_LoadTactors(void)
load JONCx from RBDY2 and initialize existing_entites
python usage : JONCx_LoadTactors()
void JONCx_UpdatePostdata(void)
Update values of outlines_JONCx and scalarfields_JONCx pointers.
usage : JONCx_UpdatePostdata
void MAILx_AddDof2InBodies(void)
set cooref = cooref + X
python usage : MAILx_AddDof2InBodies()
void MAILx_CleanMemory(void)
Free all memory allocated within MAILx module.
python usage : MAILx_CleanMemory()
void MAILx_DisplayOutGPV(void)
display GPV values
python usage : MAILx_DisplayOutGPV()
double MAILx_GetCoordNodty(int ivalue1, int ivalue2, int)
Get one coordinate of a node of a body.
python usage : x = MAILx_GetCoordNodty(int ibdty,int inodty,int icomp)
double MAILx_GetCoordsNodty(int ivalue1, int ivalue2, double *rvector_out, int rlength_out)
Get the coordinates of a node of a body.
python usage : x = MAILx_GetCoordsNodty(int ibdty, int inodty, int length)
int MAILx_GetNbCell(int IdBody)
Get the number of Cells of a given MAILx.
python usage : nb_MAILx = GetNbCell(IdBody)
int MAILx_GetNbMAILx(void)
Get the number of MAILx.
python usage : nb_MAILx = GetNbMAILx()
nb_MAILx (integer) : number of MAILx C parameter : nb_MAILx (int) : number of MAILx
int MAILx_GetNbNodes(int)
Get the number of nodes of a given MAILx.
python usage : nb_nodes = MAILx_GetNbNodes(ibdyty)
void MAILx_InitNodalField(int ibdyty, char *name, int rank, int sz)
Set name and size of a nodal_field of a given body.
python usage : MAILx_InitNodalField(ibdyty,name,rank,sz)
void MAILx_InitNodalFields(int ibdyty, int nb_fields)
Set the number of nodal_fields for a given body.
python usage : MAILx_InitNodalFields(ibdyty,nb_nodal_fields)
void MAILx_ReadBodies(void)
read MAILx from DATBOX/BODIES.DAT
python usage : MAILx_ReadBodies()
void MAILx_SetCoorRef(int IdBody, double *rvector_in, int rlength_in)
set reference coordinates on a given body
python usage : MAILx_SetCoorRef(IdBody, f, length)
void MAILx_SetNodalField(int ibdyty, int rank, double *rvector_in, int rlength_in)
Set a nodal_field of a given body.
python usage : MAILx_SetNodalField(ibdyty,rank,field)
void MAILx_WriteBodies(void)
write MAILx to OUTBOX/BODIES.OUT
python usage : MAILx_WriteBodies()
void MAILx_WriteLastGPV(void)
write OUTBOX/GPV.LAST
python usage : MAILx_WriteLastGPV()
void MAILx_WriteOutGPV(void)
write OUTBOX/GPV.OUT.x
python usage : MAILx_WriteOutGPV()
void MBS_ComputeDof(void)
update current position and velocity
python usage : MBS_ComputeDof()
void MBS_ComputeFreeVelocity(void)
compute free velocity
python usage : MBS_ComputeFreeVelocity()
void MBS_IncrementStep(void)
compute the current velocity and displacement
python usage : MBS_IncrementStep()
void MBS_UpdateDof(void)
save d.o.f. of the end of the time step to d.o.f. of the begining of the next one
python usage : MBS_UpdateDof()
void MBS_addContactor(int ibdyty, int inodty, int itacty, char *tactype, char *color, int *ivector_in, int ilength_in, double *rvector_in, int rlength_in)
Add a new contactor to a MBS.
python usage : MBS_addContactor(ibdyty, inodty, itacty, tacttype, color, idata, rdata)
void MBS_finalize(void)
Finalize MBS module.
python usage : MBS_finalize()
void MBS_getPtrCoor(int ibdyty, double **pointer_out, int *dim1, int *dim2)
void MBS_getPtrCoorTT(int ibdyty, double **pointer_out, int *dim1, int *dim2)
void MBS_getPtrLocalFrame(int ibdyty, double **pointer_out, int *dim1, int *dim2)
void MBS_getPtrLocalFrameTT(int ibdyty, double **pointer_out, int *dim1, int *dim2)
void MBS_initialize(void)
Initialize MBS module once loading is done.
python usage : MBS_initialize()
void MBS_setNb(int nb)
Set the number of MBS.
python usage : MBS_setNb(nb)
void MBS_setNbNodes(int ibdyty, int nb)
Set the number of nodes of a MBS.
python usage : MBS_setNbNodes(ibdyty, nb)
void MBS_setNbTactors(int ibdyty, int nb)
Set the number contactors of a MBS.
python usage : MBS_setNbTactors(ibdyty, nb)
int NewtonRaphson_CheckConvergence(double value)
check if Newton Raphson loop converges
python usage : iconv = NewtonRaphson_CheckConvergence(norm)
int NewtonRaphson_ComputeTimeStep(void)
manages time step evolution depending on newton raphson convergence
python usage : itodo = NewtonRaphson_ComputeTimeStep()
itodo (integer) : what to do now
itodo = 0 : just keep going (time step may have been modified)
itodo = 1 : redo time step (time step has been decreased)
itodo = 2 : it’s hopeless just stop where you are
void NewtonRaphson_Initialize(double value)
initialize Newton Raphson Loop
python usage : NewtonRaphson_Initialize(tol)
void NewtonRaphson_SetBadIter(int ivalue)
python usage : NewtonRaphson_SetBadIter(bad_iter)
void NewtonRaphson_SetFinalTime(double value)
Set final time.
python usage : NewtonRaphson_SetFinalTime(t_final)
void NewtonRaphson_SetGoodIter(int ivalue)
python usage : NewtonRaphson_SetGoodIter(good_iter)
void NewtonRaphson_SetIncPatience(int ivalue)
python usage : NewtonRaphson_SetIncPatience(patience)
void NewtonRaphson_SetMaxIter(int ivalue)
python usage : NewtonRaphson_SetMaxIter(max_iter)
void NewtonRaphson_SetMaxTimeStep(double value)
Set value of maximum possible time step.
python usage : NewtonRaphson_SetMaxTimeStep(dt)
void NewtonRaphson_SetMinTimeStep(double value)
Set value of mininum possible time step.
python usage : NewtonRaphson_SetMinTimeStep(dt)
void P2P2L_CleanMemory(void)
Free all memory allocated within P2P2L module.
python usage : P2P2L_CleanMemory()
void P2P2L_DisplayOutVlocRloc(void)
display local values of all P2P2L contacts
python usage : P2P2L_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void P2P2L_DisplayProxTactors(void)
display contacts
python usage : P2P2L_DisplayProxTactors()
void P2P2L_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = P2P2L_GetAll() array (double 2D-array) : mechanical data
int P2P2L_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan P2P2L contact
python usage : iantac = P2P2L_GetAntagonistTactId(icdan)
int P2P2L_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan P2P2L contact
python usage : icdtac = P2P2L_GetCandidatTacId(icdan)
int P2P2L_GetNbP2P2L(void)
return the number of P2P2L contact found
python usage : nb_P2P2L = P2P2L_GetNbP2P2L()
nb_P2P2L (integer) : number of P2P2L found
int P2P2L_GetNbvP2P2L(void)
return the number of P2P2L stored
python usage : nb_vP2P2L = P2P2L_GetNbvP2P2L() nb_vP2P2L (integer) : number of P2P2L stored
void P2P2L_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : P2P2L_ReadIniVlocRloc(step=0)
void P2P2L_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : P2P2L_RecupRloc()
void P2P2L_SelectProxTactors(int reset=0)
contact detection between PT2DL tactors
python usage : P2P2L_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void P2P2L_StockRloc(void)
stock values of local contact forces for the next time step
python usage : P2P2L_StockRloc()
void P2P2L_WriteLastVlocRloc(void)
write last local values of all P2P2L contacts
python usage : P2P2L_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void P2P2L_WriteOutVlocRloc(void)
write local values of all P2P2L contacts
python usage : P2P2L_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void PLALp_CleanMemory(void)
Free all memory allocated within PLALp module.
python usage : PLALp_CleanMemory()
void PLALp_DisplayOutVlocRloc(void)
display local values of all PLALp contacts
python usage : PLALp_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void PLALp_DisplayProxTactors(void)
display contacts
python usage : PLALp_DisplayProxTactors()
void PLALp_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = PLALp_GetAll() array (double 2D-array) : mechanical data
int PLALp_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan PLALp contact
python usage : iantac = PLALp_GetAntagonistTactId(icdan)
int PLALp_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan PLALp contact
python usage : icdtac = PLALp_GetCandidatTacId(icdan)
int PLALp_GetNbPLALp(void)
return the number of PLALp contact found
python usage : nb_PLALp = PLALp_GetNbPLALp()
nb_PLALp (integer) : number of PLALp found
int PLALp_GetNbvPLALp(void)
return the number of PLALp stored
python usage : nb_vPLALp = PLALp_GetNbvPLALp() nb_vPLALp (integer) : number of PLALp stored
void PLALp_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : PLALp_ReadIniVlocRloc(step=0)
void PLALp_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : PLALp_RecupRloc()
void PLALp_SelectProxTactors(int reset=0)
contact detection between POLYG and ALpxx tactors
python usage : PLALp_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void PLALp_StockRloc(void)
stock values of local contact forces for the next time step
python usage : PLALp_StockRloc()
void PLALp_WriteLastVlocRloc(void)
write last local values of all PLALp contacts
python usage : PLALp_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void PLALp_WriteOutVlocRloc(void)
write local values of all PLALp contacts
python usage : PLALp_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void PLANx_CleanMemory(void)
Free all memory allocated within PLANx module.
python usage : PLANx_CleanMemory()
int PLANx_GetNbPLANx(void)
Get the number of PLANx.
python usage : nb_PLANx = PLANx_GetNbPLANx()
nb_PLANx (integer) : the number of PLANx
void PLANx_GetNbPointOutlines(int **pointer_out, int *length)
Get the list of cumulated outline points number.
python usage : nb_pointOutlines = PLANx_GetNbPointOutlines() nb_pointOutlines (integer array) : the cumulated number of outline points of the PLANx
int PLANx_GetNbScalarFields(void)
Get the number of scalar fields of a PLANx.
python usage : nb_scalarfields = PLANx_GetNbScalarFields() nb_scalarfields (integer) : the number of scalar fields of a PLANx
void PLANx_GetPtrAllConnectivities(int **pointer_out, int *length)
Get a reference on the connectivities of all PLANx.
usage : connec = PLANx_GetPtrAllConnectivities() connec (integer array) : a reference on all_connectivities
void PLANx_GetPtrPLANx2BDYTY(int **pointer_out, int *dim1, int *dim2)
return a pointer onto the map planx2bdyty
python usage : planx2bdyty = PLANx_GetPtrPLANx2BDYTY()
planx2bdyty (integer array) : reference on map between planx rank and body rank
void PLANx_InitOutlines(double **pointer_out, int *dim1, int *dim2)
Get a reference on the outlines of all PLANx.
usage : outlines = PLANx_InitOutlines() outlines (double array) : a reference on outlines_PLANx
void PLANx_InitScalarFields(double **pointer_out, int *dim1, int *dim2)
Get a reference on the scalar fields of all PLANx.
usage : scalarfields = PLANx_InitScalarfields() scalarfields (double array) : reference on scalarfields_PLANx array
int PLANx_IsVisible(int itacty)
return if a given contactor is attached to a visible body
python usage : visible = PLANx_IsVisible(itacty)
void PLANx_LoadTactors(void)
load PLANx from RBDY3 and initialize existing_entites
python usage : PLANx_LoadTactors()
void PLANx_UpdatePostdata(void)
Update values of outlines_PLANx and scalarfields_PLANx pointers.
usage : PLANx_UpdatePostdata
void PLJCx_CleanMemory(void)
Free all memory allocated within PLJCx module.
python usage : PLJCx_CleanMemory()
void PLJCx_ComputeStress(void)
compute the PLJC contribution to the equivalent stress tensor
python usage : PLJCx_ComputeStress()
void PLJCx_DisplayOutVlocRloc(void)
display local values of all PLJCx contacts
python usage : PLJCx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void PLJCx_DisplayProxTactors(void)
display contacts
python usage : PLJCx_DisplayProxTactors()
void PLJCx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = PLJCx_GetAll() array (double 2D-array) : mechanical data
int PLJCx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan PLJCx contact
python usage : iantac = PLJCx_GetAntagonistTactId(icdan)
int PLJCx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan PLJCx contact
python usage : icdtac = PLJCx_GetCandidatTacId(icdan)
int PLJCx_GetNbPLJCx(void)
return the number of PLJCx contact found
python usage : nb_PLJCx = PLJCx_GetNbPLJCx()
nb_PLJCx (integer) : number of PLJCx found
int PLJCx_GetNbvPLJCx(void)
return the number of PLJCx stored
python usage : nb_vPLJCx = PLJCx_GetNbvPLJCx() nb_vPLJCx (integer) : number of PLJCx stored
void PLJCx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : PLJCx_ReadIniVlocRloc(step=0)
void PLJCx_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : PLJCx_RecupRloc()
void PLJCx_SelectProxTactors(int reset=0)
contact detection between POLYG and JONCx tactors
python usage : PLJCx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void PLJCx_StockRloc(void)
stock values of local contact forces for the next time step
python usage : PLJCx_StockRloc()
void PLJCx_WriteLastVlocRloc(void)
write last local values of all PLJCx contacts
python usage : PLJCx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void PLJCx_WriteOutVlocRloc(void)
write local values of all PLJCx contacts
python usage : PLJCx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void PLPLx_CleanMemory(void)
Free all memory allocated within PLPLx module.
python usage : PLPLx_CleanMemory()
void PLPLx_ComputeBetai(void)
compute equivalent damage parameter
python usage : PLPLx_ComputeBetai()
void PLPLx_ComputeCZMEnergy(void)
compute and decompose local contact energy with CZM law
python usage : PLPLx_ComputeCZMEnergy()
void PLPLx_ComputeStress(void)
update surface energy sector
python usage : PLPLx_ComputeStress()
void PLPLx_DisplayOutVlocRloc(void)
display local values of all PLPLx contacts
python usage : PLPLx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void PLPLx_DisplayProxTactors(void)
display contacts
python usage : PLPLx_DisplayProxTactors()
int PLPLx_GetAdjacentSize(int icdtac)
return the number of contact for candidate icdtac
python usage : nbadj = PLPLx_GetAdjacentSize(icdtac)
void PLPLx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = PLPLx_GetAll() array (double 2D-array) : mechanical data
void PLPLx_GetAllInternal(double **matrix_out, int *dim1, int *dim2)
return contact point internal variables
python usage : array = PLPLx_GetAllInternal() array (double 2D-array) : mechanical data
int PLPLx_GetAntagonist(int icdtac, int iadj)
return the antagonist identifiant of the contact iadj for tactor icdtac
python usage : iantac = PLPLx_GetAntagonist(icdtac,iadj)
int PLPLx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan PLPLx contact
python usage : iantac = PLPLx_GetAntagonistTactId(icdan)
void PLPLx_GetCZMEnergy(int icdan, double *energy)
Get the CZM energy of a given contact.
int PLPLx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan PLPLx contact
python usage : icdtac = PLPLx_GetCandidatTacId(icdan)
int PLPLx_GetNbPLPLx(void)
return the number of PLPLx contact found
python usage : nb_PLPLx = PLPLx_GetNbPLPLx()
nb_PLPLx (integer) : number of PLPLx found
int PLPLx_GetNbvPLPLx(void)
return the number of PLPLx stored
python usage : nb_vPLPLx = PLPLx_GetNbvPLPLx() nb_vPLPLx (integer) : number of PLPLx stored
real PLPLx_GetVerletInternal(int ivalue1, int ivalue2, double **r8_vector, int *r8_size)
python usage : vector_ptr = PLPLx_GetVerletInternal(icdtac, iadj)
void PLPLx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : PLPLx_ReadIniVlocRloc(step=0)
void PLPLx_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : PLPLx_RecupRloc()
void PLPLx_RecupRlocByPosition(double tol)
get data from Verlet list verlt and put into this
python usage : PLPLx_RecupRlocByPosition(tol)
void PLPLx_SelectProxTactors(int reset=0)
contact detection between POLYG tactors
python usage : PLPLx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void PLPLx_SetBigPolygTolerance(double tol)
python usage : PLPLx_SetBigPolygTolerance(tol)
void PLPLx_SetPeriodicCondition(double period)
initialize data for simulation using periodic condition
python usage : PLPLx_SetPeriodicCondition(period)
void PLPLx_StockRloc(void)
stock values of local contact forces for the next time step
python usage : PLPLx_StockRloc()
void PLPLx_WriteLastVlocRloc(void)
write last local values of all PLPLx contacts
python usage : PLPLx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void PLPLx_WriteOutVlocRloc(void)
write local values of all PLPLx contacts
python usage : PLPLx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void POLYG_CleanMemory(void)
Free all memory allocated within POLYG module.
python usage : POLYG_CleanMemory()
int POLYG_GetBodyId(int itacty)
Get the id of the body which the tactor belongs.
python usage : id = POLYG_GetBodyId(itacty)
int POLYG_GetContactorNbPointOutline(int itacty)
Get the number of points defining the outline of a POLYG.
python usage : nb_point_outline = POLYG_GetContactorNbPointOutline(itacty)
void POLYG_GetContactorOutline(int itacty, double **matrix_out, int *dim1, int *dim2)
Get the outline of a POLYG.
python usage : outline = POLYG_GetContactorOutline(itacty)
double POLYG_GetContactorRadius(int itact)
Get the radius of a given POLYG.
python usage : radius = POLYG_GetContactorRadius(itact)
double POLYG_GetMaxRadius(void)
give max radius used during detection
python usage : POLYG_GetMaxRadius()
double POLYG_GetMinRadius(void)
give min radius used during detection
python usage : POLYG_GetMinRadius()
int POLYG_GetNbPOLYG(void)
Get the number of POLYG in container.
python usage : nb_polyg = POLYG_GetNbPOLYG()
nb_polyg (integer) : the number of POLYG in container
void POLYG_GetNbPointOutlines(int **pointer_out, int *length)
Get the list of cumulated outline points number.
python usage : nb_pointOutlines = POLYG_GetNbPointOutlines() nb_pointOutlines (integer array) : the cumulated number of outline points of the POLYG
int POLYG_GetNbScalarFields(void)
Get the number of scalar fields of a POLYG.
python usage : nb_scalarfields = POLYG_GetNbScalarFields()
nb_scalarfields (integer) : the number of scalar fields of a POLYG
int POLYG_GetNbVertex(int itacty)
Get the number of vertices of a POLYG.
usage : nb_vertex = POLYG_GetNpVertex(itacty)
int POLYG_GetNbVertices(int ibdyty)
Get the number of vertices of the first POLYG of a body.
python usage : nb_vertices = POLYG_GetNbVertices(ibdyty)
void POLYG_GetPOLYG2RBDY2(int **i4_vector, int *i4_size)
return the map polyg2rbdy2
python usage : polyg2rbdy2 = POLYG_GetPOLYG2RBDY2() polyg2rbdy2 (integer array) : map between polyg rank and body rank
void POLYG_GetPtrPOLYG2RBDY2(int **pointer_out, int *dim1, int *dim2)
return a pointer onto the map polyg2rbdy2
python usage : polyg2rbdy2 = POLYG_GetPtrPOLYG2RBDY2()
polyg2rbdy2 (integer array) : reference on map between polyg rank and body/tactor rank
void POLYG_GetVertex(int itacty, double *rvector_out, int rlength_out)
Get the outline of a POLYG.
usage : vertex = POLYG_GetVertex(itacty, length)
void POLYG_GetVertices(int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get the coordinates of the vertices of the first POLYG of a body.
usage : vertices = POLYG_GetVertices(ibdyty)
void POLYG_InitOutlines(double **pointer_out, int *dim1, int *dim2)
Get a reference on the outlines of all POLYG.
usage : outlines = POLYG_InitOutlines() outlines (double array) : a reference on outlines_POLYG
void POLYG_InitScalarFields(double **pointer_out, int *dim1, int *dim2)
Get a reference on the scalar fields of all POLYG.
usage : scalarfields = POLYG_InitScalarfields() scalarfields (double array) : reference on scalarfields_POLYG array
void POLYG_LoadTactors(void)
load POLYG from RBDY2 and initialize existing_entites
python usage : POLYG_LoadTactors()
void POLYG_SetVther(int itacty, int ivertex, double *rvector_in, int rlength_in=2)
void POLYG_SetXther(int itacty, int ivertex, double *rvector_in, int rlength_in=2)
void POLYG_UpdateNormalsRef(void)
Update normals taken into account thermal dilatation.
python usage : POLYG_UpdateNormalsRef()
void POLYG_UpdatePostdata(void)
Update values of outlines_POLYG and scalarfields_POLYG pointers.
usage : POLYG_UpdatePostdata
void POLYG_UpdateRadii(void)
Update radii (mean,radius, max, min) for detection.
python usage : POLYG_UpdateRadii()
void POLYR_CleanMemory(void)
Free all memory allocated within POLYR module.
python usage : POLYR_CleanMemory()
void POLYR_FlatnessAngle(double angle)
set the maximum angle (between 0 and 180 degree) variation between elements of a topological face to declare it as flat
python usage : POLYR_FlatnessAngle(angle)
void POLYR_GetContactorColor(int itact, char **string_out, int *string_size)
Get the color of a given POLYR.
python usage : color = POLYR_GetContactorColor(itacty)
int POLYR_GetNbPOLYR(void)
Get the number of POLYR.
python usage : nb_POLYR = POLYR_GetNbPOLYR()
nb_POLYR (integer) : the number of POLYR
void POLYR_GetNbPointOutlines(int **pointer_out, int *length)
Get the list of cumulated outline points number.
python usage : nb_pointOutlines = POLYR_GetNbPointOutlines() nb_pointOutlines (integer array) : the cumulated number of outline points of the POLYR
int POLYR_GetNbScalarFields(void)
Get the number of scalar fields of a POLYR.
python usage : nb_scalarfields = POLYR_GetNbScalarFields() nb_scalarfields (integer) : the number of scalar fields of a POLYR
void POLYR_GetPOLYR2BDYTY(int **matrix_out, int *dim1, int *dim2)
Get a copy of map POLYR2bdyty.
usage : polyr2bdyty = POLYR_GetPOLYR2BDYTY() polyr2bdyty (integer 2D- array) : the polyr2bdyty map
void POLYR_GetPtrAllConnectivities(int **pointer_out, int *length)
Get a reference on the connectivities of all POLYR.
usage : connec = POLYR_GetPtrAllConnectivities() connec (integer array) : a reference on all_connectivities
void POLYR_GetPtrConnectivity(int itacty, int **pointer_out, int *dim1, int *dim2)
Get a reference on the connectivity of one POLYR.
usage : connec = POLYR_GetPtrConnectivity(itacty)
void POLYR_GetPtrNormalTT(int itacty, double **pointer_out, int *dim1, int *dim2)
Get a pointer on the outline of a POLYR in detection configuration - be carefull to move polyr.
usage : normal = POLYR_GetPtrNormalTT(itacty)
void POLYR_GetPtrPOLYR2BDYTY(int **pointer_out, int *dim1, int *dim2)
Get a pointer on map POLYR2bdyty.
usage : polyr2bdyty = POLYR_GetPtrPOLYR2BDYTY() polyr2bdyty (integer 2D-array) : a pointer in the polyr2bdyty map
void POLYR_GetPtrVertexRef(int itacty, double **matrix_out, int *dim1, int *dim2)
Get the position of the vertices of a POLYR in its inertia frame.
usage : vertex = POLYR_GetPtrVertexRef(itacty)
void POLYR_GetPtrVertexTT(int itacty, double **pointer_out, int *dim1, int *dim2)
Get a pointer on the outline of a POLYR in detection configuration.
usage : vertex = POLYR_GetPtrVertexTT(itacty)
void POLYR_GetVertex(int itacty, double **matrix_out, int *dim1, int *dim2)
Get the outline of a POLYR in almost current configuration.
If the POLYR is a real POLYR the current position of the center of the POLYR is used but the local frame for the orientation is the on in detection configuration.
If the POLYR is in fact a POLYD the current position of nodes of the mesh are used.
usage : vertex = POLYR_GetVertex(itacty)
void POLYR_GetWireframe(int ivalue1, double **pointer_out, int *length, int **pointer_out2, int *length2)
Get wireframe of a POLYR.
python usage : coor,connectivity = POLYR_GetWireframe(itacty)
void POLYR_InitOutlines(double **pointer_out, int *dim1, int *dim2)
Get a reference on the outlines of all POLYR.
usage : outlines = POLYR_InitOutlines() outlines (double array) : a reference on outlines_POLYR
void POLYR_InitScalarFields(double **pointer_out, int *dim1, int *dim2)
Get a reference on the scalar fields of all POLYR.
usage : scalarfields = POLYR_InitScalarfields() scalarfields (double array) : reference on scalarfields_POLYR array
int POLYR_IsVisible(int itacty)
return if a given contactor is attached to a visible body
python usage : visible = POLYR_IsVisible(itacty)
void POLYR_LoadTactors(void)
load POLYR from RBDY3 or MAILx and initialize existing_entites
python usage : POLYR_LoadTactors()
void POLYR_ModifyRadius(double ratio)
apply an amplification/reduction size factor
python usage : POLYR_ModifyRadius(ratio)
void POLYR_MoveToConfigurationTT(void)
move the polyr in the configuration TT
python usage : POLYR_MoveToConfigurationTT()
void POLYR_SaveVertex(void)
write position of vertex in a file
python usage : POLYR_SaveVertex()
void POLYR_SetThresholdBigPolyr(double ratio)
define the threshold between a plain and a big polyr. big polyr are such that radius > threshold*mean_radius. default threshold = 4.
python usage : POLYR_SetThresholdBigPolyr(ratio)
void POLYR_SkipAutomaticReorientation(void)
disable automatic reorientation (which works only with convex POLYR)
python usage : POLYR_SkipAutomaticReorientation()
Disable the automatic reorientation of normals performed by lmgc90. This is necessary when using non-convex objects.
void POLYR_SkipHEBuild(void)
disable Half-Edge structure generation (HE is necessary for non convex contact detection)
python usage : POLYR_SkipHEBuild()
Disable the Half-Edge structure generation performed by lmgc90. This is necessary when testing the import of strange object.
void POLYR_TopologyAngle(double angle)
set the maximum angle (between 0 and 180 degree) threshold between 2 elements to declare them as belonging to the same topological face
python usage : POLYR_TopologyAngle(angle)
void POLYR_UpdatePostdata(void)
Update values of outlines_POLYR and scalarfields_POLYR pointers.
usage : POLYR_UpdatePostdata()
void PRASp_CleanMemory(void)
Free all memory allocated within PRASp module.
python usage : PRASp_CleanMemory()
void PRASp_DisplayOutVlocRloc(void)
display local values of all PRASp contacts
python usage : PRASp_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void PRASp_DisplayProxTactors(void)
display contacts
python usage : PRASp_DisplayProxTactors()
void PRASp_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = PRASp_GetAll() array (double 2D-array) : mechanical data
int PRASp_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan PRASp contact
python usage : iantac = PRASp_GetAntagonistTactId(icdan)
int PRASp_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan PRASp contact
python usage : icdtac = PRASp_GetCandidatTacId(icdan)
int PRASp_GetNbPRASp(void)
Get the number of PRASp contact found.
python usage : nb_PRASp = PRASp_GetNbPRASp()
nb_PRASp (integer) : number of PRASp found
int PRASp_GetNbvPRASp(void)
return the number of PRASp stored
python usage : nb_vPRASp = PRASp_GetNbvPRASp() nb_vPRASp (integer) : number of PRASp stored
void PRASp_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : PRASp_ReadIniVlocRloc(step=0)
void PRASp_RecupRloc(void)
recover values of local contact forces from stored values
python usage : PRASp_RecupRloc()
void PRASp_SelectProxTactors(int reset=0)
contact detection between PRxxx and ASpxx tactors
python usage : PRASp_SelectProxTactors(int reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void PRASp_StockRloc(void)
stores values of local contact forces
python usage : PRASp_StockRloc()
void PRASp_WriteLastVlocRloc(void)
write last local values of all PRASp contacts
python usage : PRASp_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void PRASp_WriteOutVlocRloc(void)
write local values of all PRASp contacts
python usage : PRASp_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void PRPLx_CleanMemory(void)
Free all memory allocated within PRPLx module.
python usage : PRPLx_CleanMemory()
void PRPLx_DisplayOutVlocRloc(void)
display local values of all PRPLx contacts
python usage : PRPLx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void PRPLx_DisplayProxTactors(void)
display contacts
python usage : PRPLx_DisplayProxTactors()
void PRPLx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, local frame and forces
python usage : array = PRPLx_GetAll() array (double 2D-array) : mechanical data
int PRPLx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan PRPLx contact
python usage : iantac = PRPLx_GetAntagonistTactId(icdan)
int PRPLx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan PRPLx contact
python usage : icdtac = PRPLx_GetCandidatTacId(icdan)
int PRPLx_GetNbPRPLx(void)
Get the number of PRPLx contact found.
python usage : nb_PRPLx = PRPLx_GetNbPRPLx()
nb_PRPLx (integer) : number of PRPLx found
int PRPLx_GetNbvPRPLx(void)
return the number of PRPLx stored
python usage : nb_vPRPLx = PRPLx_GetNbvPRPLx() nb_vPRPLx (integer) : number of PRPLx stored
void PRPLx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : PRPLx_ReadIniVlocRloc(step=0)
void PRPLx_RecupRloc(void)
recovers values of local contact forces from stored values
python usage : PRPLx_RecupRloc()
void PRPLx_SelectProxTactors(int reset=0)
contact detection between PRxxx and PLxxx tactors
python usage : PRPLx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void PRPLx_StockRloc(void)
stores values of local contact forces
python usage : PRPLx_StockRloc()
void PRPLx_WriteLastVlocRloc(void)
write last local values of all PRPLx contacts
python usage : PRPLx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void PRPLx_WriteOutVlocRloc(void)
write local values of all PRPLx contacts
python usage : PRPLx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void PRPRx_BinaryReadIniVlocRloc(void)
python usage : PRPRx_BinaryReadIniVlocRloc()
the read values are relative velocity, forces and local frame
void PRPRx_BinaryWriteLastVlocRloc(void)
write last local values of all PRPRx contacts
python usage : PRPRx_BinaryWriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void PRPRx_BinaryWriteOutVlocRloc(void)
write last local values of all PRPRx contacts
python usage : PRPRx_BinaryWriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void PRPRx_CleanMemory(void)
Free all memory allocated within PRPRx module.
python usage : PRPRx_CleanMemory()
void PRPRx_CpVTKDrawAll(double rd)
activate CP drawing
python usage : PRPRx_CpVTKDrawAll(rd)
void PRPRx_DisplayOutVlocRloc(void)
display local values of all PRPRx contacts
python usage : PRPRx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void PRPRx_DisplayProxTactors(void)
display contacts
python usage : PRPRx_DisplayProxTactors()
void PRPRx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, local frame and forces
python usage : array = PRPRx_GetAll() array (double 2D-array) : mechanical data
int PRPRx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan PRPRx contact
python usage : iantac = PRPRx_GetAntagonistTactId(icdan)
int PRPRx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan PRPRx contact
python usage : icdtac = PRPRx_GetCandidatTacId(icdan)
void PRPRx_GetContactingBodies(int icdan, int *icdbdy, int *ianbdy)
void PRPRx_GetContactingBodiesVerlet(int icdan, int *ires, int *ires2)
Get the number of the contacting bodies of a vPRPRx contact.
python usage : icdbdy,ianbdy = PRPRx_GetContactingBodiesVerlet(icdan)
double PRPRx_GetInteractionInternal(int value1, int ivalue2)
Get a value from the internal vector of a PRPRx.
python usage : value = PRPRx_GetInteractionInternal(i, icdan)
void PRPRx_GetInteractionInternalComment(int ivalue, char **string_out, int *string_size)
Get internal comment of a given interaction.
python usage : comment=PRPRx_GetInteractionInternalComment(icdan)
void PRPRx_GetInteractionVector(char *cvalue1, int ivalue1, double **r8_vector, int *r8_size)
Get a copy of a vector of a PRPRx.
python usage : vector = PRPRx_GetInteractionVector(datatype, icdan)
int PRPRx_GetNbPRPRx(void)
Get the number of PRPRx contact found.
python usage : nb_PRPRx = PRPRx_GetNbPRPRx()
nb_PRPRx (integer) : number of PRPRx found
int PRPRx_GetTactBehavRank(int icdan)
Get the rank of PRPRx interaction law.
python usage : nb = PRPRx_GetTactBehavRank(icdan)
int PRPRx_GetTactBehavRankVerlet(int icdan)
Get the rank of vPRPRx interaction law.
python usage : nb = PRPRx_GetTactBehavRankVerlet(icdan)
void PRPRx_LoadProxTactorsFromFile(void)
load selected contact from files
python usage : PRPRx_LoadProxTactorsFromFile()
void PRPRx_LowSizeArrayPolyr(double sfactor)
abscons parameter to manage memory allocation
python usage : PRPRx_LowSizeArrayPolyr(sfactor)
void PRPRx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : PRPRx_ReadIniVlocRloc(step=0)
void PRPRx_RecupRloc(void)
recovers values of local contact forces from stored values
python usage : PRPRx_RecupRloc()
void PRPRx_SaveProxTactorsToFile(void)
write selected contacts to file
python usage : PRPRx_SaveProxTactorsToFile()
void PRPRx_SelectProxTactors(int reset=0)
contact detection between PRxxx and PRxxx tactors
python usage : PRPRx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void PRPRx_SetCundallNeighbor(double neighbor)
set a neighbor distance around common plane to select projected nodes
python usage : PRPRx_SetCundallNeighbor(neighbor)
void PRPRx_SetF2fMinimalSurfaceSize(double tol)
set the minimum contact surface size with f2f algo otherwize contact is not computed
python usage : PRPRx_SetF2fMinimalSurfaceSize(tol)
void PRPRx_SetInteractionInternal(int value1, int ivalue2, double rvalue)
Set a value of the internal vector of a PRPRx.
python usage : PRPRx_SetInteractionInternal(i, icdan, value)
void PRPRx_SetReactionTrackingLength(double length)
function which makes possible to set the length of the hexaedra glyph representing the visavis reaction
python usage : PRPRx_SetReactionTrackingLength(length)
void PRPRx_SetTolRecupRloc(double tol)
set the distance tolerance used in PRPRx_RecupRloc
python usage : PRPRx_SetTolRecupRloc(tol)
void PRPRx_SetXPeriodicCondition(double xperiod)
initialise data for simulation using periodic condition
python usage : PRPRx_SetXPeriodicCondition(xperiod)
void PRPRx_SetYPeriodicCondition(double yperiod)
initialise data for simulation using periodic condition
python usage : PRPRx_SetYPeriodicCondition(yperiod)
void PRPRx_ShrinkPolyrFaces(double shrink)
Shrink the face of the polyhedra for the detection.
python usage : PRPRx_ShrinkPolyrFaces(shrink)
void PRPRx_StockRloc(void)
stores values of local contact forces
python usage : PRPRx_StockRloc()
void PRPRx_UseCpCundallDetection(int iter)
chooses the Cundall iterative detection method
python usage : PRPRx_UseCpCundallDetection(nb_iter)
void PRPRx_UseCpF2fDetection(double tol, int iter)
chooses a mixe of the face 2 face and Cundall detection method
python usage : PRPRx_UseCpF2fExplicitDetection(tol,iter)
void PRPRx_UseCpF2fExplicitDetection(double tol)
chooses the face 2 face combinatory detection method
python usage : PRPRx_UseCpF2fExplicitDetection(tol)
void PRPRx_UseExternalDetection(void)
chooses external contact detection (bindings)
python usage : PRPRx_UseExternalDetection()
void PRPRx_UseNcDetection(double gdist)
chooses contact detection methode between non-convex shapes
python usage : PRPRx_UseNcDetection(gdist)
void PRPRx_UseNcF2fDetection(double gdist, double tol)
chooses contact detection between between non-convex shapes using f2f strategy
python usage : PRPRx_UseNcF2fDetection(gdist,tol)
void PRPRx_UseNcF2fExplicitDetection(double gdist, double tol)
chooses contact detection between between non-convex shapes using f2f strategy
python usage : PRPRx_UseNcF2fExplicitDetection(gdist,tol)
void PRPRx_VerboseF2F(int cd, int an)
ask for verbose comment concerning contact detection between cd and an
python usage : PRPRx_VerboseF2F(cd,an)
void PRPRx_VisavisVTKDrawAll()
create a VTK file showing joints behaviour
python usage : PRPRx_VisavisVTKDrawAll()
void PRPRx_WithNodalContact(void)
use cd contact points at nodes instead at faces with NcDetection
python usage : PRPRx_WithNodalContact()
void PRPRx_WriteLastVlocRloc(void)
write last local values of all PRPRx contacts
python usage : PRPRx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void PRPRx_WriteOutVlocRloc(void)
write local values of all PRPRx contacts
python usage : PRPRx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void PT2DL_AssembThermKT(void)
python usage : PT2DL_AssembThermKT()
void PT2DL_AssembThermRHS(void)
python usage : PT2DL_AssembThermRHS()
void PT2DL_CleanMemory(void)
Free all memory allocated within PT2DL module.
< B.o.B.o.R <
python usage : PT2DL_CleanMemory()
void PT2DL_ComputeConvectiveFlux(void)
python usage : PT2DL_ComputeConvectiveFlux()
int PT2DL_GetNbPT2DL(void)
Get the number of PT2DL.
usage : nb_PT2DL = PT2DL_GetNbPT2DL()
int PT2DL_GetNbPT2TL(int)
Get the number of PT2TL of a body.
usage : nb_PT2DL = PT2DL_GetNbPT2TL(ibdyty)
void PT2DL_LoadTactors(void)
Initialize existing_entities variable for PT2DL contactors.
python usage : PT2DL_LoadTactors()
void PT2DL_PushPreconNodes(void)
python usage : PT2DL_PushPreconNodes()
void PT2Dx_CleanMemory(void)
Free all memory allocated within PT2Dx module.
python usage : PT2Dx_CleanMemory()
int PT2Dx_GetNbPT2Dx(void)
Get the number of PT2Dx in the container.
python usage : nb_diskx = PT2Dx_GetNbPT2Dx()
nb_PT2Dx (integer) : the number of PT2Dx in container
void PT2Dx_GetNbPointOutlines(int **pointer_out, int *length)
Get the list of cumulated outline points number.
python usage : nb_pointOutlines = PT2Dx_GetNbPointOutlines() nb_pointOutlines (integer array) : the cumulated number of outline points of the PT2Dx
int PT2Dx_GetNbScalarFields(void)
Get the number of scalar fields of a PT2Dx.
python usage : nb_scalarfields = PT2Dx_GetNbScalarFields() nb_scalarfields (integer) : the number of scalar fields of a PT2Dx
void PT2Dx_GetPtrPT2Dx2RBDY2(int **pointer_out, int *dim1, int *dim2)
return a pointer onto the map pt2dx2rbdy2
python usage : ptd2x2rbdy2 = PT2Dx_GetPtrPT2Dx2RBDY2()
pt2dx2rbdy2 (integer array) : reference on map between pt2dx rank and body/tact rank
void PT2Dx_InitOutlines(double **pointer_out, int *dim1, int *dim2)
Get a reference on the outlines of all PT2Dx.
usage : outlines = PT2Dx_InitOutlines() outlines (double array) : a reference on outlines_PT2Dx
void PT2Dx_InitScalarFields(double **pointer_out, int *dim1, int *dim2)
Get a reference on the scalar fields of all PT2Dx.
usage : scalarfields = PT2Dx_InitScalarfields() scalarfields (double array) : reference on scalarfields_PT2Dx array
void PT2Dx_LoadTactors()
load PT2Dx from RBDY2 and initialize existing_entites
python usage : PT2Dx_LoadTactors()
void PT2Dx_SetDisplayRadius(double rvalue)
Set a radius to display a pt2dx.
python usage : post2D_SetDisplayRadius(radius)
void PT2Dx_UpdatePostdata(void)
Update values of outlines_PT2Dx and scalarfields_PT2Dx pointers.
usage : PT2Dx_UpdatePostdata
void PT3Dx_CleanMemory(void)
Free all memory allocated within PT3Dx module.
python usage : PT3Dx_CleanMemory()
int PT3Dx_GetNbPT3Dx(void)
Get the number of PT3Dx.
python usage : nb_PT3Dx = PT3Dx_GetNbPT3Dx()
nb_PT3Dx (integer) : the number of PT3Dx
void PT3Dx_GetNbPointOutlines(int **pointer_out, int *length)
Get the list of cumulated outline points number.
python usage : nb_pointOutlines = PT3Dx_GetNbPointOutlines() nb_pointOutlines (integer array) : the cumulated number of outline points of the PT3Dx
int PT3Dx_GetNbScalarFields(void)
Get the number of scalar fields of a PT3Dx.
python usage : nb_scalarfields = PT3Dx_GetNbScalarFields() nb_scalarfields (integer) : the number of scalar fields of a PT3Dx
void PT3Dx_GetPtrAllConnectivities(int **pointer_out, int *length)
Get a reference on the connectivities of all PT3Dx.
usage : connec = PT3Dx_GetPtrAllConnectivities() connec (integer array) : a reference on all_connectivities
void PT3Dx_GetPtrPT3Dx2BDYTY(int **pointer_out, int *dim1, int *dim2)
return a pointer onto the map pt3dx2bdyty
python usage : pt3dx2bdyty = PT3Dx_GetPtrPT3Dx2BDYTY()
pt3dx2bdyty (integer array) : reference on map between pt3dx rank and body rank
void PT3Dx_InitOutlines(double **pointer_out, int *dim1, int *dim2)
Get a reference on the outlines of all PT3Dx.
usage : outlines = PT3Dx_InitOutlines() outlines (double array) : a reference on outlines_PT3Dx
void PT3Dx_InitScalarFields(double **pointer_out, int *dim1, int *dim2)
Get a reference on the scalar fields of all PT3Dx.
usage : scalarfields = PT3Dx_InitScalarfields() scalarfields (double array) : reference on scalarfields_PT3Dx array
int PT3Dx_IsVisible(int itacty)
return if a given contactor is attached to a visible body
python usage : visible = PT3Dx_IsVisible(itacty)
void PT3Dx_LoadTactors(void)
load PT3Dx from RBDY3 and initialize existing_entites
python usage : PT3Dx_LoadTactors()
void PT3Dx_SetReferenceRadius(double radius)
void PT3Dx_UpdatePostdata(void)
Update values of outlines_PT3Dx and scalarfields_PT3Dx pointers.
usage : PT3Dx_UpdatePostdata
void PTPT2_CleanMemory(void)
Free all memory allocated within PTPT2 module.
python usage : PTPT2_CleanMemory()
void PTPT2_DisplayOutVlocRloc(void)
display local values of all PTPT2 contacts
python usage : PTPT2_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void PTPT2_DisplayProxTactors(void)
display contacts
python usage : PTPT2_DisplayProxTactors()
void PTPT2_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, normal and forces
python usage : array = PTPT2_GetAll() array (double 2D-array) : mechanical data
int PTPT2_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan PTPT2 contact
python usage : iantac = PTPT2_GetAntagonistTactId(icdan)
int PTPT2_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan PTPT2 contact
python usage : icdtac = PTPT2_GetCandidatTacId(icdan)
int PTPT2_GetNbPTPT2(void)
return the number of PTPT2 contact found
python usage : nb_PTPT2 = PTPT2_GetNbPTPT2()
nb_PTPT2 (integer) : number of PTPT2 found
int PTPT2_GetNbvPTPT2(void)
return the number of PTPT2 stored
python usage : nb_vPTPT2 = PTPT2_GetNbvPTPT2() nb_vPTPT2 (integer) : number of PTPT2 stored
void PTPT2_LoadNetwork(void)
read a PTPT2 network from a file
python usage : PTPT2_LoadNetwork()
void PTPT2_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : PTPT2_ReadIniVlocRloc(step=0)
void PTPT2_RecupRloc(void)
recup values of local contact forces of the last time step
python usage : PTPT2_RecupRloc()
void PTPT2_SelectProxTactors(int reset=0)
contact detection between PT2Dx tactors
python usage : PTPT2_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void PTPT2_StockRloc(void)
stock values of local contact forces for the next time step
python usage : PTPT2_StockRloc()
void PTPT2_WriteLastVlocRloc(void)
write last local values of all PTPT2 contacts
python usage : PTPT2_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void PTPT2_WriteOutVlocRloc(void)
write local values of all PTPT2 contacts
python usage : PTPT2_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void PTPT3_CleanMemory(void)
Free all memory allocated within PTPT3 module.
python usage : PTPT3_CleanMemory()
void PTPT3_DisplayOutVlocRloc(void)
display local values of all PTPT3 contacts
python usage : PTPT3_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void PTPT3_DisplayProxTactors(void)
display contacts
python usage : PTPT3_DisplayProxTactors()
void PTPT3_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, local frame and forces
python usage : array = PTPT3_GetAll() array (double 2D-array) : mechanical data
int PTPT3_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan PTPT3 contact
python usage : iantac = PTPT3_GetAntagonistTactId(icdan)
int PTPT3_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan PTPT3 contact
python usage : icdtac = PTPT3_GetCandidatTacId(icdan)
int PTPT3_GetNbPTPT3(void)
Get the number of PTPT3 contact found.
python usage : nb_PTPT3 = PTPT3_GetNbPTPT3()
nb_PTPT3 (integer) : number of PTPT3 found
int PTPT3_GetNbvPTPT3(void)
return the number of PTPT3 stored
python usage : nb_vPTPT3 = PTPT3_GetNbvPTPT3() nb_vPTPT3 (integer) : number of PTPT3 stored
void PTPT3_LoadNetwork(void)
read a PTPT3 network from a file
python usage : PTPT3_LoadNetwork()
void PTPT3_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : PTPT3_ReadIniVlocRloc(step=0)
void PTPT3_RecupRloc(void)
recover values of local contact forces from stored values
python usage : PTPT3_RecupRloc()
void PTPT3_SelectProxTactors(int reset=0)
contact detection between PTxxx and PTxxx tactors
python usage : PTPT3_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void PTPT3_SetXPeriodicCondition(double xperiod)
initialise data for simulation using periodic condition
python usage : PTPT3_SetXPeriodicCondition(xperiod)
void PTPT3_SetYPeriodicCondition(double yperiod)
initialise data for simulation using periodic condition
python usage : PTPT3_SetYPeriodicCondition(yperiod)
void PTPT3_SmoothForceComputation(void)
computes smooth forces (if any)
python usage : PTPT3_SmoothForceComputation()
void PTPT3_StockRloc(void)
stores values of local contact forces
python usage : PTPT3_StockRloc()
void PTPT3_WriteLastVlocRloc(void)
write last local values of all PTPT3 contacts
python usage : PTPT3_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void PTPT3_WriteOutVlocRloc(void)
write local values of all PTPT3 contacts
python usage : PTPT3_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void RBDY2_AddDof2InBodies(void)
Create a new BODIES.OUT file as combination of the last one and of the last DOF.OUT file.
usage : RBDY2_AddDof2InBodies()
void RBDY2_BiaxialLoading(int down, double f_down, int right, double f_right, int up, double f_up, int left, double f_left)
Biaxial load of a sample using a rigid box.
usage : RBDY2_BiaxialLoading(down,f_down,right,f_right,up,f_up,left,f_left)
void RBDY2_BinaryReadIniDof(void)
Read binary DOF.INI file.
void RBDY2_BinaryReadIniDof(void) usage : RBDY2_BinaryReadIniDof()
void RBDY2_BinaryWriteLastDof(void)
Write binary DOF.LAST file.
usage : RBDY2_BinaryWriteLastDof()
void RBDY2_BinaryWriteOutDof(void)
Write binary DOF.OUT file. Can be activated only each N stepssss.
usage : RBDY2_BinaryWriteOutDof()
bool RBDY2_CheckEquilibriumState(void)
check if all the RBDY2 rich an equilibrium state (velocity is almost equal to zero)
usage : isBalanced = RBDY2_CheckEquilibriumState()
isBalanced (boolean) : True if in equilibrium state
bool RBDY2_CheckPartialEquilibriumState(double abs_min, double abs_max)
Check if a part of the sample is in a equilibrium state.
Test if there is an equilibrium state between abs_min and abs_max Usefull in case of silos to decide if the arch research must be activated
usage : isPartiallyEquilibriumed = RBDY2_CheckPartialEquilibriumState(abs_min, abs_max)
void RBDY2_CheckSourcePoint(void)
check if it possible to deposit a new particle
usage : RBDY2_CheckSourcePoint()
void RBDY2_CleanMemory(void)
Free all memory allocated within RBDY2 module.
python usage : RBDY2_CleanMemory()
void RBDY2_ClearedWriteBodies(void)
...
usage : RBDY2_ClearedWriteBodies()
void RBDY2_CompCoor(void)
Compute the position of bodies.
usage : RBDY2_CompCoor()
void RBDY2_ComputeBulk(void)
Compute impulse of internal forces of bodies in container.
usage : RBDY2_ComputeBulk()
void RBDY2_ComputeDof(void)
Compute current DOF of bodies in container.
usage : RBDY2_ComputeDof()
void RBDY2_ComputeFext(void)
Compute impulse of external forces of bodies in container.
usage : RBDY2_ComputeFext()
void RBDY2_ComputeFreeVelocity(void)
Compute free velocity of bodies in container.
usage : RBDY2_ComputeFreeVelocity()
void RBDY2_ComputeMass(void)
Compute mass and inertia of bodies.
usage : RBDY2_ComputeMass()
bool RBDY2_ComputePartialEquilibriumState(double abs_min, double abs_max, double ARGOUT_ARRAY1[2])
Compute norms used to check if a part of the sample is in a equilibrium state.
Compute norms used to test if there is an equilibrium state between abs_min and abs_max Usefull in case of silos to access norms used to decide if the arch research must be activated
usage : Qnorm, Mnorm = RBDY2_CheckPartialEquilibriumState(abs_min, abs_max)
void RBDY2_DisplayOutDof(void)
Display bodies degrees of freedom.
usage : RBDY2_DisplayOutDof()
void RBDY2_DisplayOutRnod(void)
display body forces
usage : RBDY2_DisplayOutRnod()
void RBDY2_FatalDamping(int nb_steps)
Nullify body current and initial velocities.
usage : RBDY2_FatalDamping(nb_steps)
double RBDY2_GetBetai(int ibdyty, int itacty)
Get equivalent damage related to CZM interaction for rigid particle.
usage : betai = RBDY2_GetBetai(ibdyty, itacty)
double RBDY2_GetBodyArea(int ibdyty)
Get the area (2D volume equivalent) of a given body.
usage : area = GetBodyArea(ibdyty)
double RBDY2_GetBodyDensity(int ibdyty)
Get the density of a body.
usage density = RBDY2_GetBodyDensity(ibdyty)
void RBDY2_GetBodyInertia(int ivalue1, double **r8_vector, int *r8_size)
Get a copy of a inertia vector of a given RBDY2 body.
usage : inertia = RBDY2_GetBodyInertia(ibdyty)
double RBDY2_GetBodyMass(int ibdyty)
Get the mass of a body.
usage : mass = RBDY2_GetBodyMass(ibdyty)
void RBDY2_GetBodyVector(char *cvalue1, int ivalue1, double **r8_vector, int *r8_size)
Get a copy of a vector of a given RBDY2 body.
possible values for datatype field are: ‘Coor0’, ‘Coor_‘, ‘Coorb’,’Coorm’, ‘X____’, ‘Xbeg_‘, ‘V____’, ‘Vbeg_‘, ‘Vaux_‘,’Vfree’, ‘Reac_‘, ‘Fext_‘, ‘Fint_‘
usage : vector = RBDY2_GetBodyVector(datatype, ibdyty)
void RBDY2_GetBulkBehavID(int ibdyty, int iblmty, char **c5)
return the ID of a given bulk of a given body
python usage : blmID = DISKx_GetBulkBehavID(ibdyty, iblmty)
void RBDY2_GetBulkBehavNumber(int ibdyty)
return the bulk ID of a given RBDY2
python usage : ibehav = RBDY2_GetBulkBehavNumber(ibdyty)
void RBDY2_GetContactorColor(int ibdyty, int itacty, char **c5)
Get the color of the itacty contactor of a body ibdyty.
usage color = RBDY2_GetContactorColor(ibdyty,itacty)
void RBDY2_GetContactorType(int ibdyty, char **c5)
Get the type of the first contactor of a body.
usage type = RBDY2_GetContactorType(ibdyty)
double RBDY2_GetElectricalCurrent(int ibdyty)
Get electrical potential of rigid particle.
usage : ep = RBDY2_GetElectricalCurrent(ibdyty, itacty)
double RBDY2_GetElectricalPotential(int ibdyty)
Get electrical potential of rigid particle.
usage : ep = RBDY2_GetElectricalPotential(ibdyty, itacty)
int RBDY2_GetNbContactor(int ibdyty)
get the number of contactor of RBDY2
python usage : nb = RBDY2_GetNbContactor(ibdyty)
int RBDY2_GetNbRBDY2(void)
Get the number of RBDY2.
usage : nb_rbdy2 = RBDY2_GetNbRBDY2()
integer RBDY2_GetPeriode(int ibdyty)
Get the periode id (0, 1 or -1) for rigid particles.
usage : iper = RBDY2_GetPeriode(ibdyty)
void RBDY2_GetPtrBodyVector(char *cvalue1, int ivalue1, double **pointer_out, int *length)
Get a pointer on a vector of a given RBDY2 body.
possible values for datatype field are ‘Coor0’, ‘X____’, ‘Xbeg_‘, ‘V____’, ‘Vbeg_‘, ‘Vaux_‘, ‘Reac_‘, ‘Fext’
usage : vector_ptr = RBDY2_GetPtrVector(datatype, ibdyty)
void RBDY2_GetPtrMass(int ibdyty, double **mass)
Get a pointer onto the mass matrix of a body.
void RBDY2_GetStress(int ibdyty, double **matrix_out, int *dim1, int *dim2)
Set the number of angular sectors of the surface of contactors.
python usage : matrix = RBDY2_GetStress(ibdyty)
double RBDY2_GetThermalValue(int ibdyty, int itacty)
Get temperature of rigid particle.
usage : T = RBDY2_GetThermalValu(ibdyty, itacty)
void RBDY2_GetVelocity(int ibdyty, double *velocity)
Get the velocity of a body.
void RBDY2_GhostToInvisible(void)
set bodies with ghost behaviour nickname as invisible
usage : RBDY2_GhostToInvisible()
void RBDY2_IncrementStep(void)
increment values at the current time step (prediction)
usage : RBDY2_IncrementStep()
void RBDY2_InitFreeBoundary(double xmin, double xmax, double radius)
usage : RBDY2_InitFreeBoundary(xmin, xmax, radius)
void RBDY2_InitializeStresses(void)
initialize stress for rigid bodies
usage : RBDY2_InitializeStresses()
void RBDY2_InitializeWS(double rvalue1)
initialize WS for rigid bodies with a value between wsmin and wsmax ponderate by rvalue1
python usage : RBDY2_InitializeWS(double rvalue1)
vhn
int RBDY2_IsVisible(int ibdyty)
return if a body visible
usage : visible = RBDY2_IsVisible(ibdyty)
void RBDY2_LoadBehaviours(void)
Load bulk behaviour id from bulk_behav module.
usage : RBDY2_LoadBehaviours()
void RBDY2_MP_LoadBehaviours(double disper, char *cflag)
Load extra physical behaviour read in BULK_BEHAV.DAT file.
Must be used with THERMO_RIGID ELECTRO_RIGID THERMO_ELECTRO_RIGID behaviours
usage : RBDY2_MP_LoadBehaviours(disper)
void RBDY2_MembraneBiaxialLoading(int down, int up, double thickness, double stress)
Biaxial load of a sample using pseudo membrane.
usage : RBDY2_MembraneBiaxialLoading(down, up, thickness, stress)
void RBDY2_ModifyBody(int ivalue1, int ivalue2, double *rvector_in, int rlength_in)
Modify a body tactor.
usage : RBDY2_ModifyBody(ibdyty, itacty, vector)
void RBDY2_NullifyDisplacements(void)
Set displacements equal to 0.
usage : RBDY2_NullifyDisplacements()
void RBDY2_NullifyVelocities(void)
Set velocity to 0.
usage : RBDY2_NullifyVelocities()
void RBDY2_PartialDamping(int nb_steps, double Vmax)
Limit body velocity to Vmax value.
usage : RBDY2_PartialDamping(nb_steps, Vmax)
void RBDY2_PutBodyInvMass(int ivalue1, double *rvector_in, int rlength_in)
Set inv mass diagonal matrix of a given body. Overwrites the computed values.
usage : RBDY2_PutBodyInvMass(ibdyty, inv_mass)
void RBDY2_PutBodyPreconW(int ivalue1, int ivalue2, double *rvector_in, int rlength_in)
Put preconW of a given body.
usage : RBDY2_PutBodyPreconW(ibdyty, idof, W)
void RBDY2_PutBodyVector(char *cvalue1, int ivalue1, double *rvector_in, int rlength_in)
Set a vector of a given body.
possible values for datatype field are ‘Coor0’, ‘Coor_‘, ‘Coorb’,’X____’, ‘Xbeg_‘, ‘V____’, ‘Vbeg_‘, ‘Raux_‘, ‘Vfree’, ‘Fext_‘ uses copy, and in case fo Fext, the operation is not just setting but adding
usage : RBDY2_PutBodyVector(datatype, ibdyty, vector)
void RBDY2_ReadBodies(void)
Read BODIES.DAT file.
usage : RBDY2_ReadBodies()
Initialize existing_entities variable in RBDY2 Adds the number of found bodies to entity
void RBDY2_ReadDrivenDof(void)
Read DRV_DOF.DAT file.
usage : RBDY2_ReadDrivenDof()
void RBDY2_ReadIniDof(int step=0)
Read DOF file.
If step <= 0 : DATBOX/DOF.INI file is read Else : OUTBOX/DOF.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniDof last call
usage : RBDY2_ReadIniDof(step=0)
void RBDY2_ResizeBodies(double homo)
resize body radius by a factor
usage : RBDY2_ResizeBodies(homo)
void RBDY2_SetBodiesInvisible(int *ivector_in, int ilength_in)
Set a list of body to invisible state.
usage : RBDY2_SetBodiesInvisible(list_bdy)
void RBDY2_SetEquilibriumNorm(char *norm_type, double tolerance)
Initialization of data for the equilibrium state check.
You must precise the type of check test : Qvlcy : quadratic norm velocy Maxm : maximum norm velocy usage : RBDY2_CheckEquilibrium(norm_type , tolerance)
void RBDY2_SetInvisible(int ibdyty)
Set a given body as invisible.
python usage : RBDY2_SetInvisible(ibdyty)
void RBDY2_SetPeriodicCondition(double periode)
define the space is X periodic [0,periode]
The X variable reaches a value between 0 and periode
usage : RBDY2_SetPeriodicCondition(periode)
void RBDY2_SetSourcePoint(int ibdyty, double radius, double x_coor, double y_coor)
Create an assembly by source point deposit.
usage : RBDY2_SetSourcePoint(ibdyty, radius, x_coor, y_coor)
void RBDY2_SetSurfaceSectors(int nbsect)
Set the number of angular sectors of the surface of contactors.
python usage : RBDY2_SetSurfaceSectors(nbsect)
void RBDY2_SetVisible(int ibdyty)
Set a given body as visible.
python usage : RBDY2_SetVisible(ibdyt)
void RBDY2_SetVlocyDrivenDof(int ibdyty, int idrvdof, double value)
Override the value of an existing velocity driven dof.
usage : RBDY2_SetVlocyDrivenDof(ibdyty, idrvdof, value)
void RBDY2_SetXmaxBoundary(double rvalue1)
define the boundary of command CHECK_OUT_OF_BOUNDS
usage : RBDY2_SetXmaxBoundary(right_boundary)
void RBDY2_SetXminBoundary(double rvalue1)
define the boundary of command CHECK_OUT_OF_BOUNDS
usage : RBDY2_SetXminBoundary(left_boundary)
void RBDY2_SetYmaxBoundary(double rvalue1)
define the boundary of command CHECK_OUT_OF_BOUNDS
usage : RBDY2_SetYmaxBoundary(up_boundary)
void RBDY2_SetYminBoundary(double rvalue1)
define the boundary of command CHECK_OUT_OF_BOUNDS
usage : RBDY2_SetYminBoundary(inf_boundary)
void RBDY2_SkipInvisible(void)
skip invisible objects when writing BODIES.OUT
usage : RBDY2_SkipInvisible()
void RBDY2_UpdateDof(void)
set current DOF as initial DOF of bodies in container
usage : RBDY2_UpdateDof()
void RBDY2_UpdateThermalStrain(void)
usage : RBDY2_UpdateThermalStrain()
void RBDY2_UpdateWSvsT(void)
update surface energy with temperature
Must be used with THERMO_RIGID ELECTRO_RIGID THERMO_ELECTRO_RIGID behaviours
usage : RBDY2_UpdateWSvsT()
void RBDY2_UpdateWSvsTime(void)
update surface energy with time
Must be used with THERMO_RIGID ELECTRO_RIGID THERMO_ELECTRO_RIGID behaviours
usage : RBDY2_UpdateWSvsTime()
void RBDY2_WriteBodies(void)
Write BODIES.OUT file.
Write DRV_DOF.OUT file.
usage : RBDY2_WriteBodies()
void RBDY2_WriteLastDof(void)
Write ascii DOF.LAST file.
usage : RBDY2_WriteLastDof()
void RBDY2_WriteLastRnod(void)
Write ascii Rnod.LAST file.
usage : RBDY2_WriteLastRnod()
void RBDY2_WriteOutDof(int ivalue1=0, int ivalue2=0)
Write ascii DOF.OUT file. Can be activated only each N steps.
If 0 for ivalue1 and ivalue2, dofs of all bodies are written.
usage : RBDY2_WriteOutDof(ivalue1=0, ivalue2=0)
void RBDY2_WriteOutRnod(void)
Write ascii Rnod.OUT file. Can be activated only each N steps.
usage : RBDY2_WriteOutRnod()
void RBDY2_computeDrvVlocy(int ibdyty, double *rvector_in, int rlength_in)
Compute the value of the driven velocity of a body a current time.
In place replacement in the input array of the new value(s) of the driven velocity
python usage : RBDY2_computeDrvVlocy(ibdyty, values)
void RBDY2_getDrvVlocy(int ibdyty, int **i4_vector, int *i4_size, double **r8_vector, int *r8_size)
Get the driven dof of a body.
python usage : [drvdof_indices, drvdof_values] = RBDY2_getDrvVlocy(ibdyty)
void RBDY2_salComputeMass4All(void)
Compute mass and inertia of every 2D rigid bodies.
usage : RBDY2_salComputeMass4All()
void RBDY2_salComputeMass4One(int i)
Compute mass and inertia of 2D rigid body indexed i.
usage : RBDY2_salComputeMass4One(i)
void RBDY2_salComputeMass4Some(int *ivector_in, int ilength_in)
Compute mass and inertia for a list of 2D rigid bodies.
usage : RBDY2_salComputeMass4Some(i_list)
void RBDY3_AppendToBodiesDotOUT(void)
python usage : RBDY3_AppendToBodiesDotOUT()
void void RBDY3_ApplyProgressiveActivation(int freq)
set occurence of activation
python usage : RBDY3_ApplyProgressiveActivation(freq)
void RBDY3_AvoidBodyRotation(void)
kill rotation effect for RBDY3
python usage : RBDY3_AvoidBodyRotation()
void RBDY3_BinaryReadIniDof(void)
read binary file DOF.INI
python usage : RBDY3_BinaryReadIniDof()
void RBDY3_BinaryWriteLastDof(void)
write binary DOF.LAST file
python usage : RBDY3_BinaryWriteLastDof()
void RBDY3_BinaryWriteOutDof(void)
write binary DOF.OUT file. Can be activate only each N step
python usage : RBDY3_BinaryWriteOutDof()
void RBDY3_CleanMemory(void)
Free all memory allocated within RBDY3 module.
python usage : RBDY3_CleanMemory()
void RBDY3_CollectBodiesDotOUT(void)
python usage : RBDY3_CollectBodiesDotOUT()
void RBDY3_CompCoor(void)
Compute the position of bodies.
python usage : RBDY3_CompCoor()
void RBDY3_CompGlobInerRBDY3(int ibdyty, double *GlobInert)
Get the global inertia.
void RBDY3_ComputeBulk(void)
compute internal forces
python usage : RBDY3_ComputeBulk()
void RBDY3_ComputeContactDetectionConfiguration(void)
compute the contact detection configuration
python usage : RBDY3_ComputeContactDetectionConfiguration()
void RBDY3_ComputeDof(void)
update current position and velocity
python usage : RBDY3_ComputeDof()
void RBDY3_ComputeFext(void)
compute external forces
python usage : RBDY3_ComputeFext()
void RBDY3_ComputeFreeVelocity(void)
compute free velocity
python usage : RBDY3_ComputeFreeVelocity()
void RBDY3_ComputeMass(void)
compute mass and inertia of bodies
python usage : RBDY3_ComputeMass()
void RBDY3_DisplayOutDof(void)
display bodies degrees of freedom
python usage : RBDY3_DisplayOutDof()
void RBDY3_DisplayOutRnod(void)
display body forces.
python usage : RBDY3_DisplayOutRnod()
void RBDY3_FatalDamping(int freq)
Nullify body velocities (current and initial)
python usage : RBDY3_FatalDamping(freq)
void RBDY3_GetBehavior(int ibdyty, char **c5)
Get the type of the nickname of the behavior.
usage name = RBDY3_GetBehavior(ibdyty)
double RBDY3_GetBodyDensity(int ibdyty)
Get the density of a given body.
python usage : density = RBDY3_GetBodyDensity(ibdyty)
void RBDY3_GetBodyInertia(int ibdyty, double **r8_vector, int *r8_size)
Get the inertia matrix of a given RBDY3.
python usage : inertia = RBDY3_GetBodyInertia(ibdyty)
void RBDY3_GetBodyMatrix(char *cvalue1, int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get a copy of a matrix of a RBDY3 body.
python usage : matrix = RBDY3_GetBodyMatrix(datatype, ibdyty)
void RBDY3_GetBodyVector(char *cvalue1, int ivalue1, double **r8_vector, int *r8_size)
Get a copy of a vector of a RBDY3 body.
python usage : vector = RBDY3_GetBodyVector(datatype, ibdyty)
void RBDY3_GetBulkBehavNumber(int ibdyty)
return the bulk number of a given RBDY3
python usage : ibehav = RBDY3_GetBulkBehavNumber(ibdyty)
void RBDY3_GetContactorColor(int ibdyty, int itacty, char **c5)
Get the color of the itacty contactor of a body ibdyty.
usage color = RBDY3_GetContactorColor(ibdyty,itacty)
void RBDY3_GetContactorType(int ibdyty, int itacty, char **c5)
Get the type of the itacty contactor of a body ibdyty.
usage type = RBDY3_GetContactorType(ibdyty,itacty)
void RBDY3_GetGlobInertia(int ibdyty, double **matrix_out, int *dim1, int *dim2)
Get the global inertia.
usage : inertia = RBDY3_GetGlobInertia(ibdyty)
double RBDY3_GetMass(int ibdyty)
Get the mass of a body.
python usage : mass = RBDY3_GetMass(ibdyty)
int RBDY3_GetNbContactor(int ibdyty)
get the number of contactor of RBDY3
python usage : nb = RBDY3_GetNbContactor(ibdyty)
int RBDY3_GetNbRBDY3()
get the number of RBDY3
python usage : nb_RBDY3 = RBDY3_GetNbRBDY3() nb_RBDY3 (integer) : number of RBDY3 in container
void RBDY3_GetPtrBodyVector(char *cvalue1, int ivalue1, double **pointer_out, int *length)
Get a pointer on a vector of a RBDY3 body.
python usage : vector_ptr = RBDY3_GetPtrBodyVector(datatype, ibdyty)
void RBDY3_GetPtrMass(int ibdyty, double **mass)
Get a pointer onto the mass matrix of a body.
double RBDY3_GetThermalValue(int ibdyty, int itacty)
Get temperature of rigid particle.
usage : T = RBDY3_GetThermalValu(ibdyty, itacty)
void RBDY3_GetVelocity(int ibdyty, double *velocity)
Get the velocity of a body.
void RBDY3_GetVolume(int ibdyty, double *res)
Get volume of a body.
usage : volume = RBDY3_GetVolume(ibdyty)
void RBDY3_IncrementStep(void)
compute the current velocity and displacement
python usage : RBDY3_IncrementStep()
void RBDY3_IncrementWSvsT(void)
python usage : RBDY3_IncrementWSvsT()
void RBDY3_InitFreeBoundary(double xmin, double xmax, double ymin, double ymax, double radius)
python usage : RBDY3_InitFreeBoundary(xmin, xmax, ymin, ymax, radius)
void RBDY3_InitializeProgressiveActivation(double zini, double dz)
set the progression of altitude
python usage : RBDY3_InitializeProgressiveActivation(zini, dz)
int RBDY3_IsVisible(int idbdy)
return if a given body visible
python usage : visible = RBDY3_IsVisible(ibdyty)
void RBDY3_KeepIniDofOrder(void)
numbering information as they are read
python usage : RBDY3_KeepIniDofOrder()
void RBDY3_LoadBehaviours(void)
Load bulk behaviour id from bulk_behav module.
python usage : RBDY3_LoadBehaviours()
void RBDY3_LoadMpBehaviours(double disper)
read extra physical behaviour in BULK_BEHAV.DAT file.
python usage : RBDY3_LoadMpBehaviours(disper)
void RBDY3_LoadThreadNetwork(void)
read thread structure for textile structure
python usage : RBDY3_LoadThreadNetwork(void);
void RBDY3_NewRotationScheme(void)
active new rotation scheme FLAG
python usage : RBDY3_NewRotationScheme()
void RBDY3_PartialDamping(int nb_steps, double Vmax)
Limit body velocity to Vmax value.
usage : RBDY3_PartialDamping(nb_steps, Vmax)
void RBDY3_PutBodyMatrix(char *cvalue1, int ivalue1, double *matrix_in, int dim1, int dim2)
Set a matrix of a RBDY3 body.
python usage : RBDY3_PutBodyMatrix(datatype, ibdyty, matrix)
void RBDY3_PutBodyVector(char *cvalue1, int ivalue1, double *rvector_in, int rlength_in)
Set a vector of a RBDY3 body.
python usage : RBDY3_PutBodyVector(datatype, ibdyty, vector)
void RBDY3_ReadBodies(void)
read BODIES.DAT file
python usage : RBDY3_ReadBodies()
Initializes existing_entities variable in RBDY3 Adds the number of found bodies to entity
void RBDY3_ReadCompressedBodies(void)
read BODIES.DAT file without any comment
python usage : RBDY3_ReadCompressedBodies()
Initializes existing_entities variable in RBDY3 Adds the number of found bodies to entity
void RBDY3_ReadDrivenDof(void)
read DRV_DOF.DAT file
python usage : RBDY3_ReadDrivenDof()
void RBDY3_ReadIniDof(int step=0)
Read DOF file.
If step <= 0 : DATBOX/DOF.INI file is read Else : OUTBOX/DOF.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniDof last call
usage : RBDY3_ReadIniDof(step=0)
void RBDY3_RebuildBodiesDotDAT(void)
python usage : RBDY3_RebuildBodiesDotDAT()
void RBDY3_RenumVisibleBodies(void)
give a new numerotation of visible bodies
python usage : RBDY3_RenumVisibleBodies()
void void RBDY3_SetInvisible(int ibdyty)
rended a given RBDY3 invisible
python usage : RBDY3_SetInvisible(ibdyty)
void RBDY3_SetInvisibleSmallObjects(double radius)
Set the objects to invisible if their average radius is less than radius.
python usage : RBDY3_SetInvisibleSmallObjects(radius)
void void RBDY3_SetInvisibleVlocyDrivenDof(int ibdyty, int iccdof)
rended a given Velocy DDL invisible
python usage : RBDY3_SetInvisibleVlocyDrivenDof(ibdyty, iccdof)
void RBDY3_SetSourcePoint(int first_RBDY3, double radius, double Xshift, double Yshift, double Zshift)
create an assembly by source point deposit
python usage : RBDY3_SetSourcePoint(first_RBDY3, radius, Xshift, Yshift, Zshift)
void RBDY3_SetSourcePointWithIni(int first_RBDY3, double radius, double Xshift, double Yshift, double Zshift)
create an assembly by source point deposit
python usage : RBDY3_SetSourcePointWithIni(first_RBDY3, radius, Xshift, Yshift, Zshift)
void void RBDY3_SetVisible(int ibdyty)
rended a given RBDY3 visible
python usage : RBDY3_SetVisible(ibdyty)
void RBDY3_SetVisibleVlocyDrivenDof(int ibdyty, int iccdof)
rended a given Velocy DDL visible
python usage : RBDY3_SetVisibleVlocyDrivenDof(ibdyty, iccdof)
void RBDY3_SetVlocyDrivenDof(int ibdyty, int idrvdof, double value)
Override the value of an existing velocity driven dof.
usage : RBDY3_SetVlocyDrivenDof(ibdyty, idrvdof, value)
void RBDY3_SetXPeriodicCondition(double xperiode)
set the period on X axis
python usage : RBDY3_SetXPeriodicCondition(xperiod)
void RBDY3_SetXmaxBoundary(double Xmax)
define the boundary of command CHECK_OUT_OF_BOUNDS
python usage : RBDY3_SetXmaxBoundary(Xmax)
void RBDY3_SetXminBoundary(double Xmin)
define the boundary of command CHECK_OUT_OF_BOUNDS
python usage : RBDY3_SetXminBoundary(Zmin)
void RBDY3_SetYPeriodicCondition(double Yperiode)
set the periode on Y axis
python usage : RBDY3_SetYPeriodicCondition(yperiod)
void RBDY3_SetYmaxBoundary(double Ymax)
define the boundary of command CHECK_OUT_OF_BOUNDS
python usage : RBDY3_SetYmaxBoundary(Ymax)
void RBDY3_SetYminBoundary(double Ymin)
define the boundary of command CHECK_OUT_OF_BOUNDS
python usage : RBDY3_SetYminBoundary(Zmin)
void RBDY3_SetZmaxBoundary(double Zmax)
define the boundary of command CHECK_OUT_OF_BOUNDS
python usage : RBDY3_SetZmaxBoundary(Zmax)
void RBDY3_SetZminBoundary(double Zmin)
define the boundary of command CHECK_OUT_OF_BOUNDS
python usage : RBDY3_SetZminBoundary(Zmin)
void RBDY3_SkipInvisible(void)
if a body is invisible, il will not be written in bodies.out and dof.out
python usage : RBDY3_SkipInvisible()
void RBDY3_TriaxialLoading(int num_down, int num_right, int num_up, int num_left, int num_front, int num_rear, int nb_loads, double *rvector_in, int rlength_in)
Triaxial load of a sample using a rigid box.
void RBDY3_UpdateDof(void)
save d.o.f. of the end of the time step to d.o.f. of the begining of the next one
python usage : RBDY3_UpdateDof()
void RBDY3_UpdateGAMMAvsT(void)
python usage : RBDY3_UpdateGAMMAvsT()
void RBDY3_WriteBodies(void)
write BODIES.OUT file
python usage : RBDY3_WriteBodies()
void RBDY3_WriteDrivenDof(void)
write DRV_DOF.OUT file
python usage : RBDY3_WriteDrivenDof()
void RBDY3_WriteLastDof(void)
write ascii DOF.LAST file
python usage : RBDY3_WriteLastDof()
void RBDY3_WriteLastRnod(void)
write ascii Rnod.LAST file
python usage : RBDY3_WriteLastRnod()
void RBDY3_WriteOutDof(int ifrom=0, int ito=0)
write ascii DOF.OUT file. Can be activate only each N step
If 0 for ifrom and ito, dofs of all bodies are written.
python usage : RBDY3_WriteOutDof(ifrom=0, ito=0)
void RBDY3_WriteOutDofOneBody(int ibdyty, int new_ibdyty)
write a bdyty dof to DOF.OUT with a given rank
python usage : RBDY3_WriteOutDofOneBody(ibdyty, new_ibdyty)
void RBDY3_WriteOutOneBody(int ibdyty, int new_ibdyty)
write a bdyty to BODIES.OUT with a given rank
python usage : RBDY3_WriteOutOneBody(ibdyty, new_ibdyty)
void RBDY3_WriteOutRnod(void)
write ascii Rnod.OUT file. Can be activate only each N step.
python usage : RBDY3_WriteOutRnod()
void RBDY3_computeDrvVlocy(int ibdyty, double *rvector_in, int rlength_in)
Compute the value of the driven velocity of a body at current time.
In place replacement in the input array of the new value(s) of the driven velocity
python usage : RBDY3_computeDrvVlocy(ibdyty, values)
void RBDY3_getDrvVlocy(int ibdyty, int **i4_vector, int *i4_size, double **r8_vector, int *r8_size)
Get the driven dof of a body.
python usage : [drvdof_indices, drvdof_values] = RBDY3_getDrvVlocy(ibdyty)
void SPCDx_CleanMemory(void)
Free all memory allocated within SPCDx module.
python usage : SPCDx_CleanMemory()
void SPCDx_DisplayOutVlocRloc(void)
display local values of all SPCDx contacts
python usage : SPCDx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void SPCDx_DisplayProxTactors(void)
display contacts
python usage : SPCDx_DisplayProxTactors()
void SPCDx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, local frame and forces
python usage : array = SPCDx_GetAll() array (double 2D-array) : mechanical data
int SPCDx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan SPCDx contact
python usage : iantac = SPCDx_GetAntagonistTactId(icdan)
int SPCDx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan SPCDx contact
python usage : icdtac = SPCDx_GetCandidatTacId(icdan)
int SPCDx_GetNbSPCDx(void)
Get the number of SPCDx contact found.
python usage : nb_SPCDx = SPCDx_GetNbSPCDx() nb_SPCDx (integer) : number of SPCDx found
int SPCDx_GetNbvSPCDx(void)
return the number of SPCDx stored
python usage : nb_vSPCDx = SPCDx_GetNbvSPCDx() nb_vSPCDx (integer) : number of SPCDx stored
void SPCDx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : SPCDx_ReadIniVlocRloc(step=0)
void SPCDx_RecupRloc(void)
recovers values of local contact forces from stored values
python usage : SPCDx_RecupRloc()
void SPCDx_SelectProxTactors(int reset=0)
contact detection between SPxxx and CDxxx tactors
python usage : SPCDx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void SPCDx_SmoothForceComputation(void)
computes smooth forces (if any)
python usage : SPCDx_SmoothForceComputation()
void SPCDx_StockRloc(void)
stores values of local contact forces
python usage : SPCDx_StockRloc()
void SPCDx_WriteLastVlocRloc(void)
write last local values of all SPCDx contacts
python usage : SPCDx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void SPCDx_WriteOutVlocRloc(void)
write local values of all SPCDx contacts
python usage : SPCDx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void SPDCx_CleanMemory(void)
Free all memory allocated within SPDCx module.
python usage : SPDCx_CleanMemory()
void SPDCx_DisplayOutVlocRloc(void)
display local values of all SPDCx contacts
python usage : SPDCx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void SPDCx_DisplayProxTactors(void)
display contacts
python usage : SPDCx_DisplayProxTactors()
void SPDCx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, local frame and forces
python usage : array = SPDCx_GetAll() array (double 2D-array) : mechanical data
int SPDCx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan SPDCx contact
python usage : iantac = SPDCx_GetAntagonistTactId(icdan)
int SPDCx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan SPDCx contact
python usage : icdtac = SPDCx_GetCandidatTacId(icdan)
int SPDCx_GetNbSPDCx(void)
Get the number of SPDCx contact found.
python usage : nb_SPDCx = SPDCx_GetNbSPDCx()
nb_SPDCx (integer) : number of SPDCx found
int SPDCx_GetNbvSPDCx(void)
return the number of SPDCx stored
python usage : nb_vSPDCx = SPDCx_GetNbvSPDCx() nb_vSPDCx (integer) : number of SPDCx stored
void SPDCx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : SPDCx_ReadIniVlocRloc(step=0)
void SPDCx_RecupRloc(void)
recovers values of local contact forces from stored values
python usage : SPDCx_RecupRloc()
void SPDCx_SelectProxTactors(int reset=0)
contact detection between SPxxx and DCxxx tactors
python usage : SPDCx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void SPDCx_SmoothForceComputation(void)
computes smooth forces (if any)
python usage : SPDCx_SmoothForceComputation()
void SPDCx_StockRloc(void)
stores values of local contact forces
python usage : SPDCx_StockRloc()
void SPDCx_WriteLastVlocRloc(void)
write last local values of all SPDCx contacts
python usage : SPDCx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void SPDCx_WriteOutVlocRloc(void)
write local values of all SPDCx contacts
python usage : SPDCx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void SPHER_CleanMemory(void)
Free all memory allocated within SPHER module.
python usage : SPHER_CleanMemory()
void SPHER_GetContactorCoor(int itacty, double **r8_vector, int *r8_size)
get coordinates of the center of a given SPHER
usage : vector = SPHER_GetContactorCoor(itacty)
double SPHER_GetContactorRadius(int itact)
Get the radius of a SPHER contactor.
python usage : radius = SPHER_GetContactorRadius(itact)
void SPHER_GetNbPointOutlines(int **pointer_out, int *length)
Get the list of cumulated outline points number.
python usage : nb_pointOutlines = SPHER_GetNbPointOutlines() nb_pointOutlines (integer array) : the cumulated number of outline points of the SPHER
int SPHER_GetNbSPHER(void)
Get the number of SPHER.
python usage : nb_SPHER = SPHER_GetNbSPHER()
nb_SPHER (integer) : the number of SPHER
int SPHER_GetNbScalarFields(void)
Get the number of scalar fields of a SPHER.
python usage : nb_scalarfields = SPHER_GetNbScalarFields() nb_scalarfields (integer) : the number of scalar fields of a SPHER
void SPHER_GetPtrAllConnectivities(int **pointer_out, int *length)
Get a reference on the connectivities of all SPHER.
usage : connec = SPHER_GetPtrAllConnectivities() connec (integer array) : a reference on all_connectivities
void SPHER_GetPtrSPHER2BDYTY(int **pointer_out, int *dim1, int *dim2)
return a pointer onto the map spher2bdyty
python usage : spher2bdyty = SPHER_GetPtrSPHER2BDYTY()
spher2bdyty (integer array) : reference on map between spher rank and body rank
void SPHER_GetSPHER2BDYTY(int *vecteur_in, int length)
return the table spher2bdyty
spher2bdyty gives for a SPHER itact the corresponding body in BDYTY: spher2bdyty(itact)
void SPHER_InitOutlines(double **pointer_out, int *dim1, int *dim2)
Get a reference on the outlines of all SPHER.
usage : outlines = SPHER_InitOutlines() outlines (double array) : a reference on outlines_SPHER
void SPHER_InitScalarFields(double **pointer_out, int *dim1, int *dim2)
Get a reference on the scalar fields of all SPHER.
usage : scalarfields = SPHER_InitScalarfields() scalarfields (double array) : reference on scalarfields_SPHER array
int SPHER_IsVisible(int itacty)
return if a given contactor is attached to a visible body
python usage : visible = SPHER_IsVisible(itacty)
void SPHER_LoadTactors(void)
load SPHER from RBDY3 and initialize existing_entites
python usage : SPHER_LoadTactors()
void SPHER_SetRadiusCorrection(double corr)
set a radius correction
python usage : SPHER_SetRadiusCorrection(corr)
void SPHER_UpdatePostdata(void)
Update values of outlines_SPHER and scalarfields_SPHER pointers.
usage : SPHER_UpdatePostdata
void SPPLx_CleanMemory(void)
Free all memory allocated within SPPLx module.
python usage : SPPLx_CleanMemory()
void SPPLx_DisplayOutVlocRloc(void)
display local values of all SPPLx contacts
python usage : SPPLx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void SPPLx_DisplayProxTactors(void)
display contacts
python usage : SPPLx_DisplayProxTactors()
void SPPLx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, local frame and forces
python usage : array = SPPLx_GetAll() array (double 2D-array) : mechanical data
int SPPLx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan SPPLx contact
python usage : iantac = SPPLx_GetAntagonistTactId(icdan)
int SPPLx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan SPPLx contact
python usage : icdtac = SPPLx_GetCandidatTacId(icdan)
int SPPLx_GetNbSPPLx(void)
Get the number of SPPLx contact found.
python usage : nb_SPPLx = SPPLx_GetNbSPPLx()
nb_SPPLx (integer) : number of SPPLx found
int SPPLx_GetNbvSPPLx(void)
return the number of SPPLx stored
python usage : nb_vSPPLx = SPPLx_GetNbvSPPLx() nb_vSPPLx (integer) : number of SPPLx stored
void SPPLx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : SPPLx_ReadIniVlocRloc(step=0)
void SPPLx_RecupRloc(void)
recovered values of local contact forces from stored values
python usage : SPPLx_RecupRloc()
void SPPLx_SelectProxTactors(int reset=0)
contact detection between SPxxx and PLxxx tactors
python usage : SPPLx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void SPPLx_SmoothForceComputation(void)
compute smooth contact law (in any)
python usage : SPPLx_SmoothForceComputation()
void SPPLx_StockRloc(void)
stores values of local contact forces
python usage : SPPLx_StockRloc()
void SPPLx_WriteLastVlocRloc(void)
write last local values of all SPPLx contacts
python usage : SPPLx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void SPPLx_WriteOutVlocRloc(void)
write local values of all SPPLx contacts
python usage : SPPLx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void SPSPx_CleanMemory(void)
Free all memory allocated within SPSPx module.
python usage : SPSPx_CleanMemory()
void SPSPx_DisplayOutVlocRloc(void)
display local values of all SPSPx contacts
python usage : SPSPx_DisplayOutVlocRloc()
the values displayed are relative velocity, forces and local frame
void SPSPx_DisplayProxTactors(void)
display contacts
python usage : SPSPx_DisplayProxTactors()
void SPSPx_FdSelectProxTactors(void)
contact detection between SPHER and SPHER tactors
python usage : SPSPx_FdSelectProxTactors()
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void SPSPx_GetAll(double **matrix_out, int *dim1, int *dim2)
return contact point coordinates, local frame and forces
python usage : array = SPSPx_GetAll() array (double 2D-array) : mechanical data
int SPSPx_GetAntagonistTactId(int icdan)
return the antagonist contactor index for the icdan SPSPx contact
python usage : iantac = SPSPx_GetAntagonistTactId(icdan)
int SPSPx_GetCandidatTactId(int icdan)
return the candidate contactor index for the icdan SPSPx contact
python usage : icdtac = SPSPx_GetCandidatTacId(icdan)
int SPSPx_GetNbSPSPx(void)
Get the number of SPSPx contact found.
python usage : nb_SPSPx = SPSPx_GetNbSPSPx()
nb_SPSPx (integer) : number of SPSPx found
int SPSPx_GetNbvSPSPx(void)
return the number of SPSPx stored
python usage : nb_vSPSPx = SPSPx_GetNbvSPSPx() nb_vSPSPx (integer) : number of SPSPx stored
void SPSPx_ReadIniVlocRloc(int step=0)
Read VlocRloc file.
If step <= 0 : DATBOX/VlocRloc.INI file is read Else : OUTBOX/VlocRloc.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniVlocRloc last call
usage : SPSPx_ReadIniVlocRloc(step=0)
void SPSPx_RecupRloc(void)
recovers values of local contact forces from stored values
python usage : SPSPx_RecupRloc()
void SPSPx_SelectProxTactors(int reset=0)
contact detection between SPxxx and SPxxx tactors
python usage : SPSPx_SelectProxTactors(reset=0) param[in] reset (integer) : if not 0, detection is skipped but the boxes will be computed anew at next call
first recup coordinate prediction, then proceed to a box selection to found rough contact list and finally compute the final contact list
void SPSPx_SetContactRadius(double radius)
define the contact radius (experimental)
python usage : SPSPx_SetContactRadius(radius)
void SPSPx_SetNumberInterByContact(int nb_interactions)
define the number of interaction by contact (experimental)
python usage : SPSPx_SetNumberInterByContact(nb_interactions)
void SPSPx_SetXPeriodicCondition(double xperiod)
initialise data for simulation using periodic condition
python usage : SPSPx_SetXPeriodicCondition(xperiod)
void SPSPx_SetYPeriodicCondition(double yperiod)
initialise data for simulation using periodic condition
python usage : SPSPx_SetYPeriodicCondition(yperiod)
void SPSPx_SmoothForceComputation(void)
recup values of local contact forces of the last time step
python usage : SPSPx_SmoothForceComputation()
void SPSPx_StockRloc(void)
stores values of local contact forces
python usage : SPSPx_StockRloc()
void SPSPx_WriteLastVlocRloc(void)
write last local values of all SPSPx contacts
python usage : SPSPx_WriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void SPSPx_WriteOutVlocRloc(void)
write local values of all SPSPx contacts
python usage : SPSPx_WriteOutVlocRloc()
the values written are relative velocity, forces and local frame
void TimeEvolution_BinaryReadIniDof(void)
on the stream
python usage : TimeEvolution_BinaryReadIniDof()
void TimeEvolution_BinaryReadIniVlocRloc(void)
python usage : TimeEvolution_BinaryReadIniVlocRloc()
the read values are relative velocity, forces and local frame
void TimeEvolution_BinaryWriteLastDof(void)
open the stream
python usage : TimeEvolution_BinaryWriteLastDof()
void TimeEvolution_BinaryWriteLastVlocRloc(void)
python usage : TimeEvolution_BinaryWriteLastVlocRloc()
the values written are relative velocity, forces and local frame
void TimeEvolution_BinaryWriteOutDof(int Nstep_writeDof=1)
open the stream
python usage : TimeEvolution_BinaryWriteOutDof(Nstep_writeDof)
void TimeEvolution_BinaryWriteOutVlocRloc(int entier)
python usage : TimeEvolution_BinaryWriteOutVlocRloc(nstep)
the values written are relative velocity, forces and local frame
void TimeEvolution_DisplayOutDof(void)
python usage : TimeEvolution_DisplayOutDof()
void TimeEvolution_DisplayOutRnod(void)
python usage : TimeEvolution_DisplayOutRnod()
void TimeEvolution_DisplayOutVlocRloc(void)
python usage : TimeEvolution_DisplayOutVlocRloc()
void TimeEvolution_DisplayStep(void)
Display time evolution step informations.
python usage : TimeEvolution_DisplayStep()
int TimeEvolution_GetStep(void)
get current step number
python usage : it = TimeEvolution_GetStep() it (int) : current step number
double TimeEvolution_GetTime(void)
get current time
python usage : time = TimeEvolution_GetTime() time (double) : current time
double TimeEvolution_GetTimeStep(void)
get current time step
python usage : dt = TimeEvolution_GetTimeStep() dt (double) : time step
void TimeEvolution_IncrementStep(void)
Increment curent time, time step and eventually initialize NR loop counter.
python usage : TimeEvolution_IncrementStep()
void TimeEvolution_ReadIniDof(int num=0)
Read header of a DOF file.
python usage : TimeEvolution_ReadIniDof(num=0)
void TimeEvolution_ReadIniGPV(int num=0)
Read header of a GPV file.
python usage : TimeEvolution_ReadIniGPV(num=0)
void TimeEvolution_ReadIniVlocRloc(int num=0)
Read header of a VlocRloc file.
python usage : TimeEvolution_ReadIniVlocRloc(num=0)
void TimeEvolution_SetInitialStep(int ivalue)
Set the rank of the first time step.
python usage : TimeEvolution_SetInitialStep(first_step)
void TimeEvolution_SetInitialTime(double value)
Set initial time.
python usage : TimeEvolution_SetInitialTime(t_init)
void TimeEvolution_SetTimeStep(double value)
Set value of the time step.
python usage : TimeEvolution_SetTimeStep(dt)
void TimeEvolution_UpdateStep(void)
update the initial time to the current time
python usage : TimeEvolution_UpdateStep()
void TimeEvolution_WriteLastDof(void)
python usage : TimeEvolution_WriteLastDof()
void TimeEvolution_WriteLastGPV(void)
python usage : TimeEvolution_WriteLastGPV()
void TimeEvolution_WriteLastRnod(void)
python usage : TimeEvolution_WriteLastRnod()
void TimeEvolution_WriteLastVlocRloc(void)
python usage : TimeEvolution_WriteLastVlocRloc()
void TimeEvolution_WriteOutDof(int Nstep_writeDof=1)
python usage : TimeEvolution_WriteOutDof(Nstep_writeDof)
void TimeEvolution_WriteOutGPV(int entier)
python usage : TimeEvolution_WriteOutGPV(nstep)
void TimeEvolution_WriteOutRnod(int entier)
python usage : TimeEvolution_WriteOutRnod(nstep)
void TimeEvolution_WriteOutVlocRloc(int Nstep_writeVlocRloc=1)
python usage : TimeEvolution_WriteOutVlocRloc(nstep)
void a_EF_ComputeCenter(double *matrix_in, int dim1, int dim2, double **r8_vector, int *r8_size)
Compute the geometric center of an element.
python usage : center = a_EF_ComputeCenter(coor)
void a_EF_InterpolateField(double *rvector_in, int rlength_in, double *rvector_in2, int rlength_in2, double *res)
void afterall_BinaryReadIniDof(void)
close the stream
python usage : afterall_BinaryReadIniDof()
close the stream
void afterall_BinaryReadIniVlocRloc(void)
python usage : afterall_BinaryReadIniVlocRloc()
close the stream
void afterall_BinaryWriteLastDof(void)
close the stream
python usage : afterall_BinaryWriteLastDof()
close the stream
void afterall_BinaryWriteLastVlocRloc(void)
python usage : afterall_BinaryWriteLastVlocRloc()
close the stream
void afterall_BinaryWriteOutDof(void)
close the stream
python usage : afterall_BinaryWriteOutDof()
close the stream
void afterall_BinaryWriteOutVlocRloc(void)
python usage : afterall_BinaryWriteOutVlocRloc()
close the stream
void bulk_behav_AppendOutBulkBehav(void)
write (appending) gravity and behaviors to OUTBOX/BULK_BEHAV.OUT file
python usage : bulk_behav_AppendOutBulkBehav()
void bulk_behav_CleanMemory(void)
Free all memory allocated within bulk_behav module.
python usage : bulk_behav_CleanMemory()
void bulk_behav_CleanOutBulkBehav(void)
write (replacing) gravity and behaviors to OUTBOX/BULK_BEHAV.OUT file
python usage : bulk_behav_CleanOutBulkBehav()
void bulk_behav_CollectOutBulkBehav(void)
read gravity and behaviors from OUTBOX/BULK_BEHAV.OUT file
python usage : bulk_behav_CollectOutBulkBehav()
void bulk_behav_GetBulkBehav(int i_bb, char **string_out, int *string_size, char **c5)
get a given bulk law
python usage : lawty, behav = bulk_behav_GetBulkBehav(i_bb)
void bulk_behav_GetGravity(double **r8_vector, int *r8_size)
get the gravity acceleration used
python usage : gravity = bulk_behav_GetGravity() gravity (double array) : gravity vector
int bulk_behav_GetNbBulkBehav(void)
get the number of bulk laws
python usage : nb_bulk_behav = bulk_behav_GetNbBulkBehav()
void bulk_behav_ReadBehaviours(void)
read gravity and behaviors from DATBOX/BULK_BEHAV.DAT file
python usage : bulk_behav_ReadBehaviours()
void bulk_behav_RebuildInBulkBehav(void)
write (replace) gravity and behaviors to DATBOX/BULK_BEHAV.DAT file
python usage : bulk_behav_RebuildInBulkBehav()
void bulk_behav_SetBiot(char *cvalue1_c, int ivalue, double rvalue)
set the Biot parameter to be used
python usage : bulk_behav_SetBiot(cvalue ,ivalue, rvalue)
void bulk_behav_SetCapacity(char *cvalue1_c, int ivalue, double rvalue)
set the Capacity parameter to be used
python usage : bulk_behav_SetCapacity(cvalue ,ivalue, rvalue)
void bulk_behav_SetConductivity(char *cvalue1_c, int ivalue, double rvalue)
set the conductivity parameter to be used
python usage : bulk_behav_SetConductivity(cvalue ,ivalue, rvalue)
void bulk_behav_SetDensity(char *cvalue1_c, double rvalue)
set the Density parameter to be used
python usage : bulk_behav_SetDensity(cvalue , rvalue)
void bulk_behav_SetExternalFlux(char *cvalue1_c, int ivalue, double rvalue)
set the External Flux parameter to be used
python usage : bulk_behav_SetExternalFlux(cvalue ,ivalue, rvalue)
void bulk_behav_SetGravity(double *rvector_in, int rlength_in)
set the gravity acceleration to be used
python usage : bulk_behav_SetGravity(gravity)
void bulk_behav_WriteBehaviours(void)
write gravity and behaviors to OUTBOX/BULK_BEHAV.OUT file
python usage : bulk_behav_WriteBehaviours()
void cpg_3D_AfterIterCheck(void)
Control CPG convergence.
python usage cpg_3D_AfterIterCheck()
void cpg_3D_BimodalContactOrder(void)
active bimodal list
python usage : cpg_3D_BimodalContactOrder()
void cpg_3D_ExIter(void)
Execute one CPG iteration over the contact loop.
python usage cpg_3D_ExIter()
void cpg_3D_ExPost(void)
Transfer local solution.
python usage cpg_3D_ExPost()
void cpg_3D_ExPrep(void)
prepare the matrix and the RHS of the contact problem
python usage cpg_3D_ExPrep()
void cpg_3D_ExSolver(char *checktype_c, double tol, int idproj, int nb_iter_check, int nb_block_iter)
Solve fully the local contact problem.
python usage : cpg_3D_ExSolver(checktype, tol, idpoj, nb_iter_check, nb_block_iter)
void cpg_3D_NormCheck(void)
Active one step norm evolution.
python usage : cpg_3D_norm_check()
void cpg_3D_ScaleRloc(void)
scale all local contact forces of a factor equal to 0.9 < f < 1.1
python usage cpg_3D_ScaleRloc()
void cpg_3D_SetCheckType(char *checktype_c, double tol, int idproj)
define numerical convergence of the NLGS algorithm
python usage cpg_3D_SetCheckType(checktype, tol, idproj)
void cpg_3D_SetDiagonalPrecond(void)
active diagonal preconditioner
python usage cpg_3D_SetDiagonalPrecond()
void cpg_3D_SetFrictionless(void)
active frictionless solver
python usage cpg_3D_SetFrictionless()
void cpg_AfterIterCheck(void)
Control CPG convergence.
python usage cpg_AfterIterCheck()
void cpg_ExIter(void)
Execute one CPG iteration over the contact loop.
python usage cpg_ExIter()
void cpg_ExPost(void)
Transfer local solution.
python usage cpg_ExPost()
void cpg_ExPrep(void)
prepare the matrix and the RHS of the contact problem
python usage cpg_ExPrep()
void cpg_ExSolver(char *checktype_c, double tol, int nb_iter_check, int nb_block_iter)
Solve fully the local contact problem.
python usage : cpg_ExSolver(checktype, tol, nb_iter_check, nb_block_iter)
void cpg_NormCheck(void)
Active one step norm evolution.
python usage : cpg_norm_check()
void cpg_ScaleRloc(void)
scale all local contact forces of a factor equal to 0.9 < f < 1.1
python usage cpg_ScaleRloc()
void cpg_SetCheckType(char *checktype_c, double tol)
define numerical convergence of the NLGS algorithm
python usage cpg_SetCheckType(checktype, tol)
void cpg_SetDiagonalPrecond(void)
active diagonal preconditioner
python usage cpg_SetDiagonalPrecond()
void cpg_SetFrictionless(void)
active frictionless solver
python usage cpg_SetFrictionless()
void cpg_SetNoConjugaison(void)
desactive conjugaison
python usage cpg_SetNoConjugaison()
void cut2D_Cut(double *vector_inout, int length_inout, double *vector_inout2, int length_inout2, double *rvector_in, int rlength_in, int *ires)
Computes a new cut and return the number of remaining particles. A polyline is defined by a given set of points. In the case of a closed polyline, only the inner particles remain. An open polyline is supposed to link the the two vertical walls of the box. In this case, only particles under the polyline remain.
WARNING: 1) we assume nb_coor=2*nb_particles 2) radii and coor are modified by this function: numbering of particles is changed and the radii and coordinates of the removed particles are set to 0 python call: nb_inner_particles=cut2D_Cut(radii, coor, slope_coor)
void deposit2D_Gravity(double *rvector_in, int rlength_in, double lx, double *rvector_out, int rlength_out)
Computes a new deposit under gravity.
WARNING: we assume nb_coor=2*nb_particles python call: coor=deposit2D_Gravity(given_radii, lx, nb_coor)
void deposit2D_GravityAndBigParticles(double *rvector_in, int rlength_in, double lx, double *rvector_in2, int rlength_in2, double *rvector_in3, int rlength_in3, double *rvector_out, int rlength_out)
Computes a new deposit under gravity, involving big particles.
WARNING: 1) we assume nb_coor=2*nb_particles and nb_big_coor=2*nb_big_prticles 2) the coordinates of the big particles are not present in coor, since they are already known python call: coor=deposit2D_GravityAndBigParticles(given_radii, lx, given_big_radii, given_big_coor nb_coor)
void deposit2D_Heterogeneous(double *rvector_in, int rlength_in, double lx, double *rvector_in2, int rlength_in2, double *rvector_in3, int rlength_in3, double *rvector_out, int rlength_out)
Computes a new deposit around big particles.
WARNING: 1) we assume nb_coor=2*nb_particles and nb_big_coor=2*nb_big_prticles 2) the coordinates of the big particles are not present in coor, since they are already known python call: coor=deposit2D_Heterogeneous(given_radii, lx, given_big_radii, given_big_coor nb_coor)
void deposit2D_Wall(double *rvector_in, int rlength_in, double lx, double *rvector_out, int rlength_out)
Computes a new deposit beginning from the walls.
WARNING: we assume nb_coor=2*nb_particles python call: coor=deposit2D_Wall(given_radii, lx, nb_coor)
void deposit2D_WallAndBigParticles(double *rvector_in, int rlength_in, double lx, double *rvector_in2, int rlength_in2, double *rvector_in3, int rlength_in3, double *rvector_out, int rlength_out)
Computes a new deposit from the walls, involving big particles.
WARNING: 1) we assume nb_coor=2*nb_particles and nb_big_coor=2*nb_big_prticles 2) the coordinates of the big particles are not present in coor, since they are already known python call: coor=deposit2D_WallAndBigParticles(given_radii, lx, given_big_radii, given_big_coor nb_coor)
void deposit3D_Box(double *vector_inout, int length_inout, double lx, double ly, double lz, int *ires, double *rvector_out, int rlength_out)
Computes a new deposit under gravity in a box.
WARNING: 1) we assume nb_coor=3*nb_particles 2) radii is modified by this function: the radii and coordinates of non deposited particles are set to 0 3) a point (x, y, z) is in the box iff x is in [-lx/2, lx/2], y is in [-ly/2, ly/2] and z is in [0, lz] python call: [computed_coor, nb_comp_particles]=deposit3D_Box(radii, lx, ly, lz, nb_coor)
void deposit3D_Cylinder(double *vector_inout, int length_inout, double R, double lz, int *ires, double *rvector_out, int rlength_out)
Computes a new deposit under gravity in a cylinder.
WARNING: 1) we assume nb_coor=3*nb_particles 2) radii is modified by this function: the radii and coordinates of non deposited particles are set to 0 3) a point (x, y, z) is in the cylinder iff x^2 + y^2 is in [0, R^2] and z is in [0, lz] python call: [computed_coor, nb_comp_particles]=deposit3D_Cylinder(radii, R, lz, nb_coor)
void deposit3D_HeterogeneousBox(double *rvector_in, int rlength_in, double lx, double ly, double lz, double *rvector_in2, int rlength_in2, double *rvector_in3, int rlength_in3, int *ires, double *rvector_out, int rlength_out)
Computes a new deposit under gravity in a box where particles are already deposited.
WARNING: 1) we assume nb_deposited_particles=3*nb_deposited_particles and nb_coor=3*nb_particles 2) radii is modified by this function: the radii and coordinates of non deposited particles are set to 0 3) a point (x, y, z) is in the box iff x is in [-lx/2, lx/2], y is in [-ly/2, ly/2] and z is in [0, lz] python call: [computed_coor, nb_comp_particles]=deposit3D_HeterogeneousBox(radii, lx, ly, lz, deposited_radii, deposited_coor, nb_coor)
void deposit3D_HeterogeneousCylinder(double *rvector_in, int rlength_in, double R, double lz, double *rvector_in2, int rlength_in2, double *rvector_in3, int rlength_in3, int *ires, double *rvector_out, int rlength_out)
Computes a new deposit under gravity in a cylinder where particles are already deposited.
WARNING: 1) we assume nb_deposited_particles=3*nb_deposited_particles and nb_coor=3*nb_particles 2) radii is modified by this function: the radii and coordinates of non deposited particles are set to 0 3) a point (x, y, z) is in the cylinder iff x^2 + y^2 is in [0, R^2] and z is in [0, lz] python call: [computed_coor, nb_comp_particles]=deposit3D_HeterogeneousCylinder(radii, R, lz, deposited_radii, deposited_coor, nb_coor)
void deposit3D_HeterogeneousSphere(double *rvector_in, int rlength_in, double R, double IN_ARRAY1[3], double *rvector_in2, int rlength_in2, double *rvector_in3, int rlength_in3, int *ires, double *rvector_out, int rlength_out)
Computes a new deposit under gravity in a sphere where particles are already deposited.
WARNING: 1) we assume nb_deposited_particles=3*nb_deposited_particles and nb_coor=3*nb_particles 2) radii is modified by this function: the radii and coordinates of non deposited particles are set to 0 3) a point (x, y, z) is in the sphere iff (x - x_C)^2 + (y - y_C)^2 + (z - z_C)^2 is in [0, R^2] python call: [computed_coor, nb_comp_particles]=deposit3D_HeterogeneousSphere(radii, R, center, deposited_radii, deposited_coor, nb_coor)
void deposit3D_Sphere(double *vector_inout, int length_inout, double R, double IN_ARRAY1[3], int *ires, double *rvector_out, int rlength_out)
Computes a new deposit under gravity in a sphere.
WARNING: 1) we assume nb_coor=3*nb_particles 2) radii is modified by this function: the radii and coordinates of non deposited particles are set to 0 3) a point (x, y, z) is in the sphere iff (x - x_C)^2 + (y - y_C)^2 + (z - z_C)^2 is in [0, R^2] python call: [computed_coor, nb_comp_particles]=deposit3D_Sphere(radii, R, center, nb_coor)
void display_3D_CleanMemory(void)
Free all memory allocated within vtk_display_3D module.
python usage : display_3D_CleanMemory()
void display_3D_Init(int ivalue)
Initialize writing of display files.
python usage : display_3D_Init(chitchat)
void display_3D_SetBinaryWrite(void)
write binary display files
python usage : display_3D_SetBinaryWrite()
void display_3D_SetDisplayFileFormat(char *format)
Set the format of output display file (VTK of GMV)
Default format file is VTK if this function is not called
python usage : display_3D_SetDisplayFileFormat(format)
void display_3D_SetDisplayedField(char *cvalue_c)
available keywords : ‘TACTOR’ to get contactor shapes ‘INTERACTION’ to get the interactions (vtk only) ‘NEW WAY’ to use special vtk writing features (vtk only)
python usage : display_3D_SetDisplayedField(field)
void display_3D_SetNbCopies(int ivalue)
Set the number of copies of the sample.
Must provide more details about these copies
python usage : display_3D_SetNbCopies(nb_copies)
void display_3D_ShiftCopy(int ivalue, double *rvector_in, int rlength_in)
Shift a given copy of the sample.
Must provide more details about these copies
python usage : display_3D_ShiftCopy(icopy, shift)
void display_3D_WriteOutDisplayFile(int ivalue)
Write gmv file.
python usage : display_3D_WriteOutDisplayFile(ivalue)
void mecaMAILx_AddNodalFieldDivergence(int ivalue1, int ivalue2)
Add the divergence of a diagonal field to external forces.
python usage : mecaMAILx_AddNodalFieldDivergence(ibdyty, ifield)
void mecaMAILx_ApplyDrvDofKT(int *ivector_in=NULL, int ilength_in=0)
apply drvdof pseudo mass matrix
python usage : mecaMAILx_ApplyDrvDofKT(i_list)
void mecaMAILx_AssembKT(int *ivector_in=NULL, int ilength_in=0)
assemble pseudo mass matrix and apply drvdof of a list of bodies
python usage : mecaMAILx_AssembKT(i_list)
void mecaMAILx_AssembRHS(int *ivector_in=NULL, int ilength_in=0)
assembles right hand side of a list of bodies
python usage : mecaMAILx_AssembRHS(i_list)
void mecaMAILx_BandStorage(void)
use band matrix
python usage : mecaMAILx_BandStorage()
void mecaMAILx_BuildRigidBodies(void)
computes internal matrices for rigid description
python usage : mecaMAILx_BuildRigidBodies()
int mecaMAILx_CheckEquilibriumState(void)
Check if the bodies riches an equilibrium state (velocities almost equal to 0)
python usage : iconv = mecaMAILx_CheckEquilibriumState()
iconv (boolean) : True if in equilibrium state
void mecaMAILx_CleanMemory(void)
Free all memory allocated within mecaMAILx module.
python usage : mecaMAILx_CleanMemory()
void mecaMAILx_ComputeBulk(int *ivector_in=NULL, int ilength_in=0)
computes elementary stiffness and viscosity matrices of a list of bodies
python usage : mecaMAILx_ComputeBulk(i_list)
void mecaMAILx_ComputeContactDetectionConfiguration(int *ivector_in=NULL, int ilength_in=0)
compute the contact detection configuration of a list of bodies
python usage : mecaMAILx_ComputeContactDetectionConfiguration(i_list)
void mecaMAILx_ComputeDof(int *ivector_in=NULL, int ilength_in=0)
computes the current d.o.f knowing all the forces (free + contact) of a list of bodies
python usage : mecaMAILx_ComputeDof(i_list)
void mecaMAILx_ComputeFext(int *ivector_in=NULL, int ilength_in=0)
compute elementary external forces of a list of bodies
python usage : mecaMAILx_ComputeFext(i_list)
void mecaMAILx_ComputeField(int *ivector_in=NULL, int ilength_in=0)
computes elementary fields of a list of bodies
python usage : mecaMAILx_ComputeField(i_list)
void mecaMAILx_ComputeFreeVelocity(int *ivector_in=NULL, int ilength_in=0)
computes free velocity of a list of bodies
python usage : mecaMAILx_ComputeFreeVelocity(i_list)
void mecaMAILx_ComputeInfoPrincipalStressField(int ivalue1, double **r8_vector, int *r8_size)
Get info on the principal stress field: min,mean,max.
Python usage : info = mecaMAILx_ComputeInfoPrincipalStressField(ibdyty)
void mecaMAILx_ComputeMass(int *ivector_in=NULL, int ilength_in=0)
compute elementary mass and inertia of a list of bodies
python usage : mecaMAILx_ComputeMass(i_list)
void mecaMAILx_ComputeOrthoFrame(int *ivector_in=NULL, int ilength_in=0)
Use user routine to compute the ortho frame of a list of bodies.
this method uses a routine define by the user in user.f90 python usage : mecaMAILx_ComputeOrthoFrame(i_list)
void mecaMAILx_ComputePreconW(void)
compute the precon W on precon bodies
python usage : mecaMAILx_ComputePreconW()
void mecaMAILx_ComputeRayleighDamping(double alpha, double beta, int *ivector_in=NULL, int ilength_in=0)
compute the Rayleigh damping: C=alpha*M+beta*K of a list of bodies
python usage : mecaMAILx_ComputeRayleighDamping(alpha,beta,i_list)
void mecaMAILx_ComputeRayleighDampingDiscreteElement(double damp, int *ivector_in=NULL, int ilength_in=0)
set damping for discrete FE element of a list of bodies
python usage : mecaMAILx_ComputeRayleighDampingDiscreteElement(damp, i_list)
double mecaMAILx_ComputeResidueNorm(int *ivector_in=NULL, int ilength_in=0)
computes the norm of the residue of a list of bodies
python usage : norm = mecaMAILx_ComputeResidueNorm(i_list)
void mecaMAILx_ComputeUserField(int ifield, int *ivector_in=NULL, int ilength_in=0)
Use user routine to compute a field at gp.
python usage : mecaMAILx_ComputeUserField(ifield, i_list)
void mecaMAILx_DiagonalStorage(void)
use diagonal matrix
python usage : mecaMAILx_DiagonalStorage()
void mecaMAILx_DisplayBulkElement(int IdBody, int IdElem)
Display fields of a bulk element.
void mecaMAILx_DisplayOutDof(void)
Display body degrees of freedom.
python usage : mecaMAILx_DisplayOutDof()
void mecaMAILx_DisplayOutNodalForces(int *ivector_in=NULL, int ilength_in=0)
Display computed nodal forces of a list of bodies.
python usage : mecaMAILx_DisplayOutNodalForces(i_list)
void mecaMAILx_DisplayOutRnod(int *ivector_in=NULL, int ilength_in=0)
Display body forces of a list of bodies.
python usage : mecaMAILx_DisplayOutRnod(i_list)
void mecaMAILx_ExplodedStorage(void)
use element by element matrix
python usage : mecaMAILx_ExplodedStorage()
void mecaMAILx_FatalDamping(int *ivector_in=NULL, int ilength_in=0)
set to 0 current velocities of a list of bodies
This keyword must be between the ComputeDof and UpdateDof ones.
python usage : mecaMAILx_FatalDamping(i_list)
void mecaMAILx_FullStorage(void)
use full matrix
python usage : mecaMAILx_FullStorage()
void mecaMAILx_GetAll(int idBody, double **matrix_out, int *dim1, int *dim2)
return mechanical data computed for idBody
python usage : array = mecaMAILx_GetAll(idBody)
void mecaMAILx_GetBodyMatrix(char *cvalue1_c, int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get a copy of a matrix of a given body.
Python usage : matrix = mecaMAILx_GetBodyMatrix(datatype, ibdyty)
void mecaMAILx_GetBodyRVector(char *cvalue1, int ivalue1, double **r8_vector, int *r8_size)
Get a copy of a vector of a mecaMAILx body.
python usage : vector = mecaMAILx_GetBodyRVector(datatype, ibdyty)
void mecaMAILx_GetBodyVector(char *cvalue1_c, int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get a copy of a vector of a given body.
Python usage : vector = mecaMAILx_GetBodyVector(datatype, ibdyty)
void mecaMAILx_GetBoundaryElements(int idBody, int **i4_vector, int *i4_size)
return boundary elements
python usage : vector = mecaMAILx_GetBoundaryElements(idBody)
void mecaMAILx_GetConnectivity(int idBody, int **i4_vector, int *i4_size)
return connectivity of idBody elements
python usage : vector = mecaMAILx_GetConnectivity(idBody)
void mecaMAILx_GetCoor(int idBody, double **matrix_out, int *dim1, int *dim2)
return node coordinates of idBody
python usage : array = mecaMAILx_GetCoor(idBody)
double mecaMAILx_GetDeformationEnergy(int ivalue1, double *rvector_in, int rlength_in)
Get the deformation energy of a given displacement field.
python usage : energy = mecaMAILx_GetDeformationEnergy(id,displacement)
void mecaMAILx_GetElementsEnergy(int idBody, double **r8_vector, int *r8_size)
return energy of elements
python usage : energies = mecaMAILx_GetElementsEnergy(idBody)
void mecaMAILx_GetElementsJacobian(int idBody, double **r8_vector, int *r8_size)
return jacobian of elements
python usage : jacobians = mecaMAILx_GetElementsJacobian(idBody)
void mecaMAILx_GetElementsNeighbor(int idBody, double tol, int max_neighbors, int **matrix_out, int *dim1, int *dim2)
return elements in the tol-neighbor of an element of idBody
python usage : neighbors = mecaMAILx_GetElementsNeighbor(idBody,tol,max_neighbors)
void mecaMAILx_GetElementsVolume(int idBody, double **r8_vector, int *r8_size)
return volume of elements
python usage : volumes = mecaMAILx_GetElementsVolume(idBody)
void mecaMAILx_GetInternalVariable(int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get a copy of the internal variable of a given body.
Python usage : Internal = mecaMAILx_GetInternalVariable(ibdyty, nb_internal)
double mecaMAILx_GetKineticEnergy(int ivalue1, double *rvector_in, int rlength_in)
Get the kinetic energy of a given velocity field.
python usage : energy = mecaMAILx_GetKineticEnergy(id,velocity)
int mecaMAILx_GetNbElements(int ivalue)
Get the number of elements of a mecaMAILx.
python usage : nb_elements = mecaMAILx_GetNbElements(ibdyty)
int mecaMAILx_GetNbInternal(int ivalue)
Get the number of internal variable of a mecaMAILx.
python usage : nb_nodes = mecaMAILx_GetNbInternal(ibdyty)
int mecaMAILx_GetNbMecaMAILx(void)
Get the number of mecaMAILx.
python usage : nb_mecaMAILx = mecaMAILx_GetNbMecaMAILx()
nb_mecaMAILx (integer) : number of mecaMAILx
int mecaMAILx_GetNbNodes(int ivalue)
Get the number of nodes of a mecaMAILx.
python usage : nb_nodes = mecaMAILx_GetNbNodes(ibdyty)
void mecaMAILx_GetNeighborElementsToElement(int idBody, int idELe, int **i4_vector, int *i4_size)
return neighbor elements to element idEle of body idBody
python usage : vector = mecaMAILx_GetNeighborElementsToElement(idBody,idEle)
void mecaMAILx_GetNeighborElementsToNode(int idBody, int idNode, int **i4_vector, int *i4_size)
return neighbor elements to node idNode of body idBody
python usage : vector = mecaMAILx_GetNeighborElementsToNode(idBody,idNode)
int mecaMAILx_GetNodeCoorTT(int ibdyty, int inodty, double **r8_vector, int *r8_size)
return TT node coordinates
python usage : vec = mecaMAILx_GetNodeCoorTT(ibdyty,inodty)
int mecaMAILx_GetNodeCooref(int ibdyty, int inodty, double **r8_vector, int *r8_size)
return ref node coordinates
python usage : vec = mecaMAILx_GetNodeCoorref(ibdyty,inodty)
void mecaMAILx_GetNodesPrecon(int ivalue1, int **i4_vector, int *i4_size)
Get the list of preconditionned nodes of a mecaMAILx body.
Here memory is allocated within lmgc90 so that the pointer can be freely modified by third parties without nasty effect on lmgc90 functioning.
python usage : precon_list = mecaMAILx_GetNodesPrecon(ibdyty)
void mecaMAILx_GetPtrBodyVector(char *cvalue1_c, int IdBody, double **pointer_out, int *length)
return pointer on body vector cvalue1_c of body IdBody
python usage : ptr = mecaMAILx_GetPtrBodyVector( cvalue1_c, IdBody )
void mecaMAILx_GetPtrElementsVisibility(int idBody, int **pointer_out, int *length)
Get a pointer on the elements visibility vector.
python usage : eviz = mecaMAILx_GetPtrElementsVisibility(ibdyty)
void mecaMAILx_GetPtrPreconW(int idBody, double **pointer_out, int *dim1, int *dim2)
int mecaMAILx_GetRigidCoorTT(int ibdyty, double **r8_vector, int *r8_size)
return TT center of inertia coordinates
python usage : vec = mecaMAILx_GetRigidCoorTT(ibdyty)
int mecaMAILx_GetRigidCooref(int ibdyty, double **r8_vector, int *r8_size)
return ref center of inertia coordinates
python usage : vec = mecaMAILx_GetRigidCooref(ibdyty)
int mecaMAILx_GetRigidFrameTT(int ibdyty, double **matrix_out, int *dim1, int *dim2)
return a inertia frame vector
python usage : vec = mecaMAILx_GetRigidFrameTT(ibdyty)
int mecaMAILx_GetScalarFieldRank(int ibdyty, int blmty, char *name)
Get the rank of scalar field of an element of a body from its name.
python usage : f_rank = mecaMAILx_GetScalarFieldRank(ibdyty, iblmty, name)
void mecaMAILx_GetStrain(int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get a copy of the strain of a given body.
Python usage : strain = mecaMAILx_GetStrain2D(ibdyty)
void mecaMAILx_GetStress(int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get a copy of the stress of a given body.
Python usage : stress = mecaMAILx_GetStress(ibdyty)
int mecaMAILx_GetVectorFieldRank(int ibdyty, int blmty, char *name)
Get the rank of field of an element of a body from its name.
python usage : f_rank = mecaMAILx_GetVectorFieldRank(ibdyty, iblmty, name)
void mecaMAILx_GpvVTKDrawAll(double ref_size, int with_principalstress)
create a VTK file showing gpv values
python usage : mecaMAILx_GpvVTKDrawAll(ref_size,with_principalstress)
void mecaMAILx_IncrementStep(void)
initializes the current d.o.f and some driven d.o.f values
python usage : mecaMAILx_IncrementStep()
void mecaMAILx_InitPreconW(void)
initialize an empty precon W
python usage : mecaMAILx_InitPreconW()
int mecaMAILx_IsRigid(int idbdy)
return 1 if a given body is rigid, 0 otherwize
python usage : rigid = mecaMAILx_IsRigid(ibdyty)
int mecaMAILx_IsVisible(int idbdy)
return if a given body visible
python usage : visible = mecaMAILx_IsVisible(ibdyty)
void mecaMAILx_LoadBehaviours(void)
load behaviours from bulk_behav
python usage : mecaMAILx_LoadBehaviours()
void mecaMAILx_LoadModels(void)
load models from models
python usage : mecaMAILx_LoadModels()
void mecaMAILx_LoadWPreconBody(int ivalue)
load the precomputed W matrix on support node dofs of contactors for one body. Assumes bulk behaviour is linear.
python usage : mecaMAILx_LoadWPreconBody(ivalue)
void mecaMAILx_NullifyReac(char *cvalue1_c, int IdBody)
set to 0 the reac of the IdBody mecaMAILx
python usage : mecaMAILx_NullifyReac(datatype, IdBody)
void mecaMAILx_OnlyAssembKT(int *ivector_in=NULL, int ilength_in=0)
assemble pseudo mass matrix of a list of bodies
python usage : mecaMAILx_OnlyAssembKT(i_list)
void mecaMAILx_PushProperties(void)
gives to model the couple of model,behavior used at gauss point
python usage : mecaMAILx_PushProperties()
void mecaMAILx_PutBodyRVector(char *cvalue1, int ivalue1, double *rvector_in, int rlength_in)
Set a vector of a coro or rigid mecaMAILx body.
python usage : mecaMAILx_PutBodyRVector(datatype, ibdyty, vector)
void mecaMAILx_PutBodyVector(char *cvalue1_c, int ivalue1, double *rvector_in, int rlength_in)
Set a vector of a given body.
python usage : mecaMAILx_PutBodyVector(datatype, ibdyty, vector)
void mecaMAILx_PutPreconW(int ivalue1, int ivalue2, int ivalue3, double *rvector_in, int rlength_in)
push a column of precon W
python usage : mecaMAILx_PutPreconW(ivalue1, ivalue2, ivalue3, vect)
void mecaMAILx_ReadDrivenDof(void)
Read DRV_DOF.DAT.
python usage : mecaMAILx_ReadDrivenDof()
void mecaMAILx_ReadIniDof(int step=0)
Read DOF file.
If step <= 0 : DATBOX/DOF.INI file is read Else : OUTBOX/DOF.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniDof last call
python usage : mecaMAILx_ReadIniDof(step=0)
void mecaMAILx_ReadIniGPV(int step=0)
Read GPV file.
If step <= 0 : DATBOX/GPV.INI file is read Else : OUTBOX/GPV.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniGPV last call
python usage : mecaMAILx_ReadIniGPV(step=0)
void mecaMAILx_RigidVTKDrawAll(void)
create vtk files concerning rigid object embeded in a mecaMAILx (if exists)
python usage : mecaMAILx_RigidVTKDrawAll()
void mecaMAILx_SetCoroAllBodies(void)
ask for corotationnal computation of the W matrix. Assumes bulk behaviour is linear.
python usage : mecaMAILx_SetCoroAllBodies()
void mecaMAILx_SetCoroBody(int ivalue)
ask for corotationnal computation of the W matrix of a given body. Assumes bulk behaviour is linear.
python usage : mecaMAILx_SetCoroBody(ivalue)
void mecaMAILx_SetEquilibriumNorm(char *checktype_c, double tol)
set the norm for CheckEquilibriumState
python usage : mecaMAILx_SetEquilibriumNorm(checktype, tol)
void void mecaMAILx_SetInvisible(int ibdyty)
rended a given mecaMAILx invisible
python usage : mecaMAILx_SetInVisible(ibdyty)
void mecaMAILx_SetPreconAllBodies(void)
ask for precomputation of the W matrix on support node dofs of contactors for all bodies. Assumes bulk behaviour is linear.
python usage : mecaMAILx_SetPreconAllBodies()
void mecaMAILx_SetPreconBody(int ivalue)
ask for precomputation of the W matrix on support node dofs of contactors for one body. Assumes bulk behaviour is linear.
python usage : mecaMAILx_SetPreconBody(ivalue)
void mecaMAILx_SetRVDrivenDofValue(int IdBody, int IdDof, double rv)
set the value of rigid velocity dof value
python usage : mecaMAILx_SetRVDrivenDofValue(idbody,iddof,rv)
void mecaMAILx_SetRVDrivenDofs(int IdBody, int *ivector_in, int ilength_in)
declares rigid velocity dof as driven
python usage : mecaMAILx_SetRVDrivenDofs(idbody,vector_in,length)
void mecaMAILx_SetRigidAllBodies(void)
ask for rigid computation of the W matrix. Assumes bulk behaviour is linear.
python usage : mecaMAILx_SetRigidAllBodies()
void mecaMAILx_SetRigidBody(int ivalue)
ask for rigid computation of the W matrix of a given body. Assumes bulk behaviour is linear.
python usage : mecaMAILx_SetRigidBody(ivalue)
void mecaMAILx_SetScalarFieldByElement(int IdBody, int f_rank, double *rvector_in, int rlength_in)
Update elementary scalar field through a element external field on a given body.
Field values are stored at Gauss point, on an element all Gauss point have the element value
python usage : mecaMAILx_SetScalarFieldByElement(IdBody, f_rank, f)
void mecaMAILx_SetScalarFieldByNode(int IdBody, int f_rank, double *rvector_in, int rlength_in)
Update elementary scalar field through a nodal external field on a given body.
Use the form functions of the elements and input values to compute and store field values at Gauss points.
python usage : mecaMAILx_SetScalarFieldByNode(IdBody, f_rank, f)
void mecaMAILx_SetTolCoro(double tol)
set the admssible tolerance on rigid body velocity computed by deformable model
python usage : mecaMAILx_SetTolCoro(tol)
void mecaMAILx_SetVectorFieldByElement(int ibdyty, int f_rank, double *matrix_in, int dim1, int dim2)
Update elementary fields through a nodal external field on a given body.
Use the form functions of the elements and input values to compute and store field values at Gauss points.
python usage : mecaMAILx_SetFieldByElement(IdBody, f_rank, f)
void mecaMAILx_SetVectorFieldByNode(int ibdyty, int f_rank, double *matrix_in, int dim1, int dim2)
Update elementary fields through a nodal external field on a given body.
Use the form functions of the elements and input values to compute and store field values at Gauss points.
python usage : mecaMAILx_SetFieldByNode(IdBody, f_rank, f)
void void mecaMAILx_SetVisible(int ibdyty)
set visible a given mecaMAILx
python usage : mecaMAILx_SetVisible(ibdyty)
void mecaMAILx_SetVlocyDrivenDof(int IdBody, int f_dof, int f_noce, double f_value)
Apply Drv Dof on a given body.
python usage : mecaMAILx_SetVlocyDrivenDof(IdBody, f_dof, f_node, f_value)
void mecaMAILx_SkipDeformableComputationAllBodies(void)
avoid deformable part computation of a deformable body declared as rigid
python usage : mecaMAILx_SkipDeformableComputationAllBodies()
void mecaMAILx_SkipDeformableComputationBody(int ivalue)
avoid deformable part computation of a given deformable body declared as rigid
python usage : mecaMAILx_SkipDeformableComputationBody(ivalue)
void mecaMAILx_SkylineStorage(void)
use skyline matrix
python usage : mecaMAILx_SkylineStorage()
void mecaMAILx_SparseStorage(void)
use sparse matrix
python usage : mecaMAILx_SparseStorage()
void mecaMAILx_SymmetricShape(void)
assume matrix is symmetrical
python usage : mecaMAILx_SymmetricShape()
void mecaMAILx_Terminate(void)
Stop job properly.
python usage : mecaMAILx_Terminate()
void mecaMAILx_UnspecifiedShape(void)
does not assume any thing on matrix shape
python usage : mecaMAILx_UnspecifiedShape()
void mecaMAILx_UpdateBulk(int *ivector_in=NULL, int ilength_in=0)
update begin elementary fields with current elementary fields of a list of bodies
python usage : mecaMAILx_UpdateBulk(i_list)
void mecaMAILx_UpdateDof(int *ivector_in=NULL, int ilength_in=0)
update begin d.o.f. with current d.o.f. of a list of bodies
python usage : mecaMAILx_UpdateDof(i_list)
void mecaMAILx_UseNewPPSet(void)
each gauss point will have its own property set (necessary in multi physics)
python usage : mecaMAILx_UseNewPPSet()
void mecaMAILx_WithoutRenumbering(void)
skip renumbering of the unknowns using a rcc method
python usage : mecaMAILx_WithoutRenumbering()
void mecaMAILx_WriteDrivenDof(void)
Write DRV_DOF.OUT.
python usage : mecaMAILx_WriteDrivenDof()
void mecaMAILx_WriteLastDof(void)
Write ascii DOF.LAST file.
python usage : mecaMAILx_WriteLastDof()
void mecaMAILx_WriteLastNodalForces(int *ivector_in=NULL, int ilength_in=0)
Write ascii Rnod.LAST file of a list of bodies.
This function is almost like WriteLastRnod, but write also internal and inertial forces.
python usage : mecaMAILx_WriteLastNodalForces(i_list)
void mecaMAILx_WriteLastRnod(int *ivector_in=NULL, int ilength_in=0)
Write ascii Rnod.LAST file of a list of bodies.
python usage : mecaMAILx_WriteLastRnod(i_list)
void mecaMAILx_WriteOutDof(void)
Write ascii DOF.OUT file. Can be activate only each N step.
python usage : mecaMAILx_WriteOutDof()
void mecaMAILx_WriteOutNodalForces(int *ivector_in=NULL, int ilength_in=0)
Write ascii Rnod.OUT file of a list of bodies. Can be activat only each N step.
This function is almost like WriteOutRnod, but write also internal and inertial forces.
python usage : mecaMAILx_WriteOutNodalForces(i_list)
void mecaMAILx_WriteOutRnod(int *ivector_in=NULL, int ilength_in=0)
Write ascii Rnod.OUT file of a list of bodies. Can be activat only each N step.
python usage : mecaMAILx_WriteOutRnod(i_list)
void mecaMAILx_computeDrvVlocy(int ibdyty, double *rvector_in, int rlength_in)
Compute the value of the driven velocity of a body a current time.
In place replacement in the input array of the new value(s) of the driven velocity
python usage : mecaMAILx_computeDrvVlocy(ibdyty, values)
void mecaMAILx_getDrvVlocy(int ibdyty, int **i4_vector, int *i4_size, double **r8_vector, int *r8_size)
Get the driven dof of a body.
python usage : [drvdof_indices, drvdof_values] = mecaMAILx_getDrvVlocy(ibdyty)
void mesh2D_GetIndicesMeshQ4(int n, int *ires, int *ires2)
this function gives the couple (i, j) of indices coresponding to a given node n
WARNING: python call: [i, j]=mesh2D_GetIndicesMeshQ4(n)
void mesh2D_Mesh2T3(double x0, double y0, double lx, double ly, int nb_elem_x, int nb_elem_y, double *rvector_out, int rlength_out, int *ivector_out, int ilength_out, int *ivector_out2, int ilength_out2)
this function computes an returns a mesh made of T3 obtained by splitting a Q4 in two T3 in the following generic format:
coor: vector of coordinates of the nodes [x1, y1, x2, y2, ...]
nb_node_per_ele: nb_node_per_ele(i) contains the number of nodes for element i, i in [1, number of elements]
conn: vector storing the connectivity of the elements [n11, n12n n13, n21, n22, n23, n24, ...] consider the following little mesh: 2 4 - | 1 /| | / | | / | |/ 2 | - 1 3 the vectors for this mesh read:
coor = [x1, y1, x2, y2, x3, y3, x4, y4]
nb_node_per_ele = [3, 3]
conn = [1, 3, 4, 2, 1, 4]
coor: vector of coordinates of the nodes [x1, y1, x2, y2, ...]
nb_node_per_ele: nb_node_per_ele(i) contains the number of nodes for element i, i in [1, number of elements]
conn: vector storing the connectivity of the elements [n11, n12n n13, n21, n22, n23, n24, ...] WARNING: python call: [coor, nb_node_per_ele, conn]=mesh2D_Mesh2T3(x0, y0, lx, ly, nb_elem_x, nb_elem_y, size_coor, size_nb_node_per_ele, size_conn)
void mesh2D_Mesh4T3(double x0, double y0, double lx, double ly, int nb_elem_x, int nb_elem_y, double *rvector_out, int rlength_out, int *ivector_out, int ilength_out, int *ivector_out2, int ilength_out2)
this function computes and return a mesh made of T3 obtained by splitting a Q4 in four T3 in the following generic format:
coor: vector of coordinates of the nodes [x1, y1, x2, y2, ...]
nb_node_per_ele: nb_node_per_ele(i) contains the number of nodes for element i, i in [1, number of elements]
conn: vector storing the connectivity of the elements [n11, n12n n13, n21, n22, n23, n24, ...] consider the following little mesh: 2 4 – |\ 4 /| | / | |1 5 3| | / | |/ 2 | – 1 3 the vectors for this mesh read:
coor = [x1, y1, x2, y2, x3, y3, x4, y4, x5, y5]
nb_node_per_ele = [3, 3, 3, 3]
conn = [1, 5, 2, 1, 3, 5, 3, 4, 5, 2, 5, 4] WARNING: python call: [coor, nb_node_per_ele, conn]=mesh2D_Mesh4T3(x0, y0, lx, ly, nb_elem_x, nb_elem_y, size_coor, size_nb_node_per_ele, size_conn)
void mesh2D_MeshQ4(double x0, double y0, double lx, double ly, int nb_elem_x, int nb_elem_y, double *rvector_out, int rlength_out, int *ivector_out, int ilength_out, int *ivector_out2, int ilength_out2)
this function computes and returns a mesh made of Q4 in the following generic format:
coor: vector of coordinates of the nodes [x1, y1, x2, y2, ...]
nb_node_per_ele: nb_node_per_ele(i) contains the number of nodes for element i, i in [1, number of elements]
conn: vector storing the connectivity of the elements [n11, n12n n13, n21, n22, n23, n24, ...] consider the following little mesh: 2 4 6 * | 1 | 2 | * 1 3 5 the vectors for this mesh read:
coor = [x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6]
nb_node_per_ele = [4, 4]
conn = [1, 3, 4, 2, 3, 5, 6, 4] WARNING: python call: [coor, nb_node_per_ele, conn]=mesh2D_MeshQ4(x0, y0, lx, ly, nb_elem_x, nb_elem_y, size_coor, size_nb_node_per_ele, size_conn)
void mesh2D_MeshQ8(double x0, double y0, double lx, double ly, int nb_elem_x, int nb_elem_y, double *rvector_out, int rlength_out, int *ivector_out, int ilength_out, int *ivector_out2, int ilength_out2)
this function computes and returns a mesh made of Q8 in the following generic format:
coor: vector of coordinates of the nodes [x1, y1, x2, y2, ...]
nb_node_per_ele: nb_node_per_ele(i) contains the number of nodes for element i, i in [1, number of elements]
conn: vector storing the connectivity of the elements [n11, n12n n13, n21, n22, n23, n24, ...] consider the following little mesh: 3 7 3 * | | | | 8 * 1 * 6 | | | | * 1 5 2 the vectors for this mesh read:
coor = [x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8, y8]
nb_node_per_ele = [8]
conn = [1, 2, 3, 4, 5, 6, 7, 8] WARNING: python call: [coor, nb_node_per_ele, conn]=mesh2D_MeshQ8(x0, y0, lx, ly, nb_elem_x, nb_elem_y, size_coor, size_nb_node_per_ele, size_conn)
void mesh2D_SizeMesh2T3(int nb_elem_x, int nb_elem_y, int *ires, int *ires2, int *ires3)
this function computes the sizes of vectors used to store a mesh made of T3 obtained by splitting a Q4 in two T3 in the following generic format:
coor: vector of coordinates of the nodes [x1, y1, x2, y2, ...]
nb_node_per_ele: nb_node_per_ele(i) contains the number of nodes for element i, i in [1, number of elements]
conn: vector storing the connectivity of the elements [n11, n12n n13, n21, n22, n23, n24, ...] consider the following little mesh: 2 4 - | 1 /| | / | | / | |/ 2 | - 1 3 the vectors for this mesh read:
coor = [x1, y1, x2, y2, x3, y3, x4, y4]
nb_node_per_ele = [3, 3]
conn = [1, 3, 4, 2, 1, 4] WARNING: python call: [size_coor, size_nb_node_per_ele, size_conn]=mesh2D_SizeMesh2T3(nb_elem_x, nb_elem_y)
void mesh2D_SizeMesh4T3(int nb_elem_x, int nb_elem_y, int *ires, int *ires2, int *ires3)
this function computes the sizes of vectors used to store a mesh made of T3 obtained by splitting a Q4 in four T3 in the following generic format:
coor: vector of coordinates of the nodes [x1, y1, x2, y2, ...]
nb_node_per_ele: nb_node_per_ele(i) contains the number of nodes for element i, i in [1, number of elements]
conn: vector storing the connectivity of the elements [n11, n12n n13, n21, n22, n23, n24, ...] consider the following little mesh: 2 4 – |\ 4 /| | / | |1 5 3| | / | |/ 2 | – 1 3 the vectors for this mesh read:
coor = [x1, y1, x2, y2, x3, y3, x4, y4, x5, y5]
nb_node_per_ele = [3, 3, 3, 3]
conn = [1, 5, 2, 1, 3, 5, 3, 4, 5, 2, 5, 4] WARNING: python call: [size_coor, size_nb_node_per_ele, size_conn]=mesh2D_SizeMesh4T3(nb_elem_x, nb_elem_y)
void mesh2D_SizeMeshQ4(int nb_elem_x, int nb_elem_y, int *ires, int *ires2, int *ires3)
this function computes the sizes of vectors used to store a mesh made of Q4 in the following generic format:
coor: vector of coordinates of the nodes [x1, y1, x2, y2, ...]
nb_node_per_ele: nb_node_per_ele(i) contains the number of nodes for element i, i in [1, number of elements]
conn: vector storing the connectivity of the elements [n11, n12n n13, n21, n22, n23, n24, ...] consider the following little mesh: 2 4 6 * | 1 | 2 | * 1 3 5 the vectors for this mesh read:
coor = [x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6]
nb_node_per_ele = [4, 4]
conn = [1, 3, 4, 2, 3, 5, 6, 4] WARNING: python call: [size_coor, size_nb_node_per_ele, size_conn]=mesh2D_SizeMeshQ4(nb_elem_x, nb_elem_y)
void mesh2D_SizeMeshQ8(int nb_elem_x, int nb_elem_y, int *ires, int *ires2, int *ires3)
this function computes the sizes of vectors used to store a mesh made of Q8 following generic format:
coor: vector of coordinates of the nodes [x1, y1, x2, y2, ...]
nb_node_per_ele: nb_node_per_ele(i) contains the number of nodes for element i, i in [1, number of elements]
conn: vector storing the connectivity of the elements [n11, n12n n13, n21, n22, n23, n24, ...] consider the following little mesh: 3 7 3 * | | | | 8 * 1 * 6 | | | | * 1 5 2 the vectors for this mesh read:
coor = [x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8, y8]
nb_node_per_ele = [8]
conn = [1, 2, 3, 4, 5, 6, 7, 8] WARNING: python call: [size_coor, size_nb_node_per_ele, size_conn]=mesh2D_SizeMesh4T3(nb_elem_x, nb_elem_y)
void models_CleanMemory(void)
Free all memory allocated within models module.
python usage : models_CleanMemory()
void models_InitModels(void)
initialize models
python usage : models_InitModels()
void models_InitProperties(void)
initialize properties
In face re-initialize properties (since it is done in InitModels). Necessary if a Store has been done and it is wanted again to LoadModel
python usage : models_InitProperties()
void models_ReadModels(void)
read models from DATBOX/MODELS.DAT
python usage : models_ReadModels()
void models_StoreProperties(void)
create properties (couple of model and models)
python usage : models_StoreProperties()
void models_WriteModels(void)
write models to OUTBOX/MODELS.OUT
python usage : models_WriteModels()
void mp_solver_3D_ReadIniMpValues(void)
python usage : mp_solver_3D_ReadIniMpValues()
void mp_solver_3D_ReadMpBehaviour(void)
python usage : mp_solver_3D_ReadMpBehaviour()
void mp_solver_3D_RecupPotential(void)
python usage : mp_solver_3D_RecupPotential()
void mp_solver_3D_RecupTemperature(void)
python usage : mp_solver_3D_RecupTemperature()
void mp_solver_3D_SolveElectro1G(void)
python usage : mp_solver_3D_SolveElectro1G()
void mp_solver_3D_SolveNlElectro1G(void)
python usage : mp_solver_3D_SolveNlElectro1G()
void mp_solver_3D_SolveThermoProblem(void)
python usage : mp_solver_3D_SolveThermoProblem()
void mp_solver_3D_UpdateConductivity(void)
python usage : mp_solver_3D_UpdateConductivity()
void mp_solver_3D_UpdateThermoProblem(void)
python usage : mp_solver_3D_UpdateThermoProblem()
void mp_solver_3D_WriteMpBehaviour(void)
python usage : mp_solver_3D_WriteMpBehaviour()
void mp_solver_3D_WriteOutMpValues(void)
python usage : mp_solver_3D_WriteOutMpValues()
void mp_solver_GetBrancheValues(char *c5, int itact, double **r8_vector, int *r8_size)
void mp_solver_InitThermalConductivity(void)
python usage : mp_solver_InitThermalConductivity()
void mp_solver_PutHeatConductionContinueFactor(double ivalue)
python usage : value = mp_solver_PutHeatConductionContinueFactor(ivalue)
void mp_solver_PutHeatGenerationFactor(double ivalue)
python usage : value = mp_solver_PutHeatGenerationFactor(ivalue)
void mp_solver_ReadIniMpValues(void)
python usage : mp_solver_ReadIniMpValues()
void mp_solver_ReadMpBehaviour(void)
python usage : mp_solver_ReadMpBehaviour()
void mp_solver_RecupPotential(void)
python usage : mp_solver_RecupPotential()
void mp_solver_RecupTemperature(void)
python usage : mp_solver_RecupTemperature()
void mp_solver_SolveElectro1G(void)
python usage : mp_solver_SolveElectro1G()
void mp_solver_SolveNlElectro1G(void)
python usage : mp_solver_SolveNlElectro1G()
void mp_solver_SolveThermoProblem(void)
python usage : mp_solver_SolveThermoProblem()
void mp_solver_UpdateConductivity(void)
python usage : mp_solver_UpdateConductivity()
void mp_solver_UpdateThermoProblem(void)
python usage : mp_solver_UpdateThermoProblem()
void mp_solver_WriteMpBehaviour(void)
python usage : mp_solver_WriteMpBehaviour()
void mp_solver_WriteOutMpValues(void)
python usage : mp_solver_WriteOutMpValues()
void multiMAILx_AssembKT(int *ivector_in=NULL, int ilength_in=0)
assemble pseudo mass matrix and apply drvdof of a list of bodies
python usage : multiMAILx_AssembKT(i_list)
void multiMAILx_AssembRHS(int *ivector_in=NULL, int ilength_in=0)
assembles right hand side of a list of bodies
python usage : multiMAILx_AssembRHS(i_list)
void multiMAILx_BandStorage(void)
use band matrix
python usage : multiMAILx_BandStorage()
void multiMAILx_CleanMemory(void)
Free all memory allocated within multiMAILx module.
python usage : multiMAILx_CleanMemory()
void multiMAILx_ComputeBulk(int *ivector_in=NULL, int ilength_in=0)
computes elementary stiffness and viscosity matrices of a list of bodies
python usage : multiMAILx_ComputeBulk(i_list)
void multiMAILx_ComputeDof(int *ivector_in=NULL, int ilength_in=0)
computes the current d.o.f knowing all the forces/fluxses (free + contact) of a list of bodies
python usage : multiMAILx_ComputeDof(i_list)
void multiMAILx_ComputeElementsEnergy(int idBody)
compute energy of elements
python usage : multiMAILx_ComputeElementsEnergy(idBody)
void multiMAILx_ComputeElementsJacobian(int idBody)
compute jacobian of elements
python usage : multiMAILx_ComputeElementsJacobian(idBody)
void multiMAILx_ComputeFext(int *ivector_in=NULL, int ilength_in=0)
compute elementary external forces of a list of bodies
python usage : multiMAILx_ComputeFext(i_list)
void multiMAILx_ComputeField(int *ivector_in=NULL, int ilength_in=0)
computes elementary fields of a list of bodies
python usage : multiMAILx_ComputeField(i_list)
void multiMAILx_ComputeFreeState(int *ivector_in=NULL, int ilength_in=0)
computes free (of interactions) state of a list of bodies
python usage : multiMAILx_ComputeFreeState(i_list)
void multiMAILx_ComputeMass(int *ivector_in=NULL, int ilength_in=0)
compute elementary mass and inertia of a list of bodies
python usage : multiMAILx_ComputeMass(i_list)
double multiMAILx_ComputeResidueNorm(int *ivector_in=NULL, int ilength_in=0)
computes the norm of the residue of a list of bodies
python usage : norm = multiMAILx_ComputeResidueNorm(i_list)
void multiMAILx_DiagonalStorage(void)
use diagonal matrix
python usage : multiMAILx_DiagonalStorage()
void multiMAILx_ExplodedStorage(void)
use element by element matrix
python usage : multiMAILx_ExplodedStorage()
void multiMAILx_FullStorage(void)
use full matrix
python usage : multiMAILx_FullStorage()
void multiMAILx_GetAll(int idBody, double **matrix_out, int *dim1, int *dim2)
return mechanical data computed for idBody
python usage : array = multiMAILx_GetAll(idBody)
void multiMAILx_GetBodyVector(char *cvalue1_c, int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get a copy of a vector of a given body.
Python usage : vector = multiMAILx_GetBodyVector(datatype, ibdyty)
void multiMAILx_GetConnectivity(int idBody, int **i4_vector, int *i4_size)
return connectivity of idBody elements
python usage : vector = multiMAILx_GetConnectivity(idBody)
void multiMAILx_GetCoor(int idBody, double **matrix_out, int *dim1, int *dim2)
return node coordinates of idBody
python usage : array = multiMAILx_GetCoor(idBody)
double multiMAILx_GetDeformationEnergy(int ivalue1, double *matrix_in, int dim1, int dim2)
Get the deformation energy of a given displacement field.
python usage : energy = multiMAILx_GetDeformationEnergy(id,displacement)
void multiMAILx_GetElementsNeighbor(int idBody, double tol, int max_neighbors, int **matrix_out, int *dim1, int *dim2)
return elements in the tol-neighbor of an element of idBody
python usage : neighbors = multiMAILx_GetElementsNeighbor(idBody,tol,max_neighbors)
void multiMAILx_GetElementsVolume(int idBody, double **r8_vector, int *r8_size)
return volume of elements
python usage : volumes = multiMAILx_GetElementsVolume(idBody)
int multiMAILx_GetNb(void)
Get the number of multiMAILx.
python usage : nb_multiMAILx = multiMAILx_GetNb()
nb_multiMAILx (integer) : number of multiMAILx
int multiMAILx_GetNbElements(int ivalue)
Get the number of elements of a multiMAILx.
python usage : nb_elements = multiMAILx_GetNbElements(ibdyty)
int multiMAILx_GetNbNodes(int ivalue)
Get the number of nodes of a multiMAILx.
python usage : nb_nodes = multiMAILx_GetNbNodes(ibdyty)
void multiMAILx_GetPtrBoundaryElements(int idBody, int **i4_vector, int *i4_size)
return boundary elements
python usage : vector = multiMAILx_GetPtrBoundaryElements(idBody)
void multiMAILx_GetPtrElementsEnergy(int idBody, double **pointer_out, int *length)
return pointer on energy of elements
python usage : energies = multiMAILx_GetPtrElementsEnergy(idBody)
void multiMAILx_GetPtrElementsJacobian(int idBody, double **pointer_out, int *length)
return jacobian of elements
python usage : jacobians = multiMAILx_GetPtrElementsJacobian(idBody)
void multiMAILx_GetPtrElementsVisibility(int idBody, int **pointer_out, int *length)
Get a pointer on the elements visibility vector.
python usage : eviz = multiMAILx_GetPtrElementsVisibility(ibdyty)
int multiMAILx_GetScalarFieldRank(int ibdyty, int blmty, char *name)
Get the rank of field of an element of a body from its name.
python usage : f_rank = multiMAILx_GetScalarFieldRank(ibdyty, iblmty, name)
int multiMAILx_GetVectorFieldRank(int ibdyty, int blmty, char *name)
Get the rank of field of an element of a body from its name.
python usage : f_rank = multiMAILx_GetVectorFieldRank(ibdyty, iblmty, name)
void multiMAILx_IncrementStep(void)
initializes the current d.o.f and some driven d.o.f values
python usage : multiMAILx_IncrementStep()
int multiMAILx_IsVisible(int idbdy)
return if a given body visible
python usage : visible = multiMAILx_IsVisible(ibdyty)
void multiMAILx_LoadBehaviours(void)
load behaviours from bulk_behav
python usage : multiMAILx_LoadBehaviours()
void multiMAILx_LoadModels(void)
load models from models
python usage : multiMAILx_LoadModels()
void multiMAILx_PushProperties(void)
gives to model the couple of model,behavior used at gauss point
python usage : multiMAILx_PushProperties()
void multiMAILx_PutBodyVector(char *cvalue1_c, int ivalue1, double *matrix_in, int dim1, int dim2)
Set a vector of a given body.
python usage : multiMAILx_PutBodyVector(datatype, ibdyty, vector)
void multiMAILx_ReadDrivenDof(void)
Read DRV_DOF.DAT.
python usage : multiMAILx_ReadDrivenDof()
void multiMAILx_ReadIniDof(int step=0)
Read DOF file.
If step <= 0 : DATBOX/DOF.INI file is read Else : OUTBOX/DOF.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniDof last call
python usage : multiMAILx_ReadIniDof(step=0)
void multiMAILx_ReadIniGPV(int step=0)
Read GPV file.
If step <= 0 : DATBOX/GPV.INI file is read Else : OUTBOX/GPV.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniGPV last call
python usage : multiMAILx_ReadIniGPV(step=0)
void multiMAILx_SetScalarFieldByElement(int IdBody, int f_rank, double *rvector_in, int rlength_in)
Update elementary scalar field through a element external field on a given body.
Field values are stored at Gauss point, on an element all Gauss point have the element value
python usage : multiMAILx_SetScalarFieldByElement(IdBody, f_rank, f)
void multiMAILx_SetScalarFieldByNode(int IdBody, int f_rank, double *rvector_in, int rlength_in)
Update elementary fields through a nodal external field on a given body.
python usage : multiMAILx_SetScalarFieldByNode(IdBody, f_rank, f)
void multiMAILx_SetVectorFieldByElement(int ibdyty, int f_rank, double *matrix_in, int dim1, int dim2)
Update elementary fields through a nodal external field on a given body.
Use the form functions of the elements and input values to compute and store field values at Gauss points.
python usage : multiMAILx_SetFieldByElement(IdBody, f_rank, f)
void multiMAILx_SetVectorFieldByNode(int ibdyty, int f_rank, double *matrix_in, int dim1, int dim2)
Update elementary fields through a nodal external field on a given body.
Use the form functions of the elements and input values to compute and store field values at Gauss points.
python usage : multiMAILx_SetFieldByNode(IdBody, f_rank, f)
void multiMAILx_SkylineStorage(void)
use skyline matrix
python usage : multiMAILx_SkylineStorage()
void multiMAILx_SparseStorage(void)
use sparse matrix
python usage : multiMAILx_SparseStorage()
void multiMAILx_SymmetricShape(void)
assume matrix is symmetrical
python usage : multiMAILx_SymmetricShape()
void multiMAILx_UnspecifiedShape(void)
does not assume any thing on matrix shape
python usage : multiMAILx_UnspecifiedShape()
void multiMAILx_UpdateBulk(int *ivector_in=NULL, int ilength_in=0)
update begin elementary fields with current elementary fields of a list of bodies
python usage : multiMAILx_UpdateBulk(i_list)
void multiMAILx_UpdateDof(int *ivector_in=NULL, int ilength_in=0)
update begin d.o.f. with current d.o.f. of a list of bodies
python usage : multiMAILx_UpdateDof(i_list)
void multiMAILx_UseNewtonScheme(void)
use Newton scheme
python usage : multiMAILx_UseNewtonScheme()
void multiMAILx_UsePicardScheme(void)
use Picard scheme (fixed point method)
python usage : multiMAILx_UsePicardScheme()
void multiMAILx_WithoutRenumbering(void)
skip renumbering of the unknowns using a rcc method
python usage : multiMAILx_WithoutRenumbering()
void multiMAILx_WriteDrivenDof(void)
Write DRV_DOF.OUT.
python usage : multiMAILx_WriteDrivenDof()
void multiMAILx_WriteLastDof(int *ivector_in=NULL, int ilength_in=0)
Write DOF.LAST file.
python usage : multiMAILx_WriteLastDof(i_list)
void multiMAILx_WriteOutDof(int *ivector_in=NULL, int ilength_in=0)
Write DOF.OUT file.
python usage : multiMAILx_WriteOutDof(i_list)
int nlgs_3D_AfterIterCheck(void)
Control NLGS convergence.
python usage : convergence = nlgs_3D_AfterIterCheck() convergence (integer) :
int nlgs_3D_AfterIterCheckJacobi(void)
Control NLGS convergence.
python usage : convergence = nlgs_3D_AfterIterCheckJacobi() convergence (integer) :
void nlgs_3D_ComputeRnod(void)
mapping from local contact forces to global ones
python usage : nlgs_3D_ComputeRnod()
void nlgs_3D_DiagonalResolution(void)
python usage : nlgs_3D_DiagonalResolution()
void nlgs_3D_DisplayAfterIterCheck(void)
display NLGS convergence results
python usage : nlgs_3D_DisplayAfterIterCheck()
void nlgs_3D_DisplayTacInfo(int itac)
Display information concerning one contact.
python usage : nlgs_3D_DsplayTacInfo(itac) param[in] itac (integer) : contact rank
void nlgs_3D_ExIter(int nb_iter)
Executes nb_iter NLGS iterations.
python usage : nlgs_3D_ExIter(nb_iter) param[in] nb_iter (integer) : number of iterations to do
void nlgs_3D_ExIterJacobi(int nb_iter)
Executes nb_iter NLJacobi iterations.
python usage : nlgs_3D_ExIterJacobi(nb_iter) param[in] nb_iter (integer) : number of iterations to do
void nlgs_3D_ExPost(void)
run a jacobi iteration with the solution obtain with the NLGS algorithm
python usage : nlgs_3D_ExPost()
void nlgs_3D_ExPostJacobi(void)
run a jacobi iteration with the solution obtain with the NLGS algorithm
python usage : nlgs_3D_ExPostJacobi()
void nlgs_3D_ExPrep(char *storage_c)
Prepare matrix storage.
python usage : nlgs_ExPrep(storage)
void nlgs_3D_ExSolver(char *Wstorage_c, char *checktype_c, double tol, double RELAX, int nb_iter_check, int nb_block_iter)
Solve fully the local contact problem.
python usage : nlgs_3D_ExSolver(storage, checktype, tol, relax, nb_iter_check, nb_block_iter)
void nlgs_3D_IsInitialized(void)
In case of restart say that nlgs is initialized.
python usage : nlgs_3D_IsInitialized()
void nlgs_3D_QuickScrambleContactOrder(void)
Random renumbering of the contact list.
python usage : nlgs_3D_QuickScrambleContactOrder()
void nlgs_3D_ReverseContactOrder(void)
reverse the numbering of the contact list
python usage : nlgs_3D_ReverseContactOrder()
void nlgs_3D_ScaleRloc(void)
scale all local contact forces of a factor equal to 0.9 < f < 1.1
python usage : nlgs_3D_ScaleRloc()
void nlgs_3D_ScrambleContactOrder(void)
Random renumbering of the contact list.
python usage : nlgs_3D_ScrambleContactOrder()
void nlgs_3D_SetCheckType(char *checktype_c, double tol, double RELAX)
define numerical convergence of the NLGS algorithm
python usage : nlgs_SetCheckType(check_type, tolerance, relaxation)
void nlgs_3D_SetWithQuickScramble(void)
Activate quick scramble in macro function ExSolver.
python usage : nlgs_3D_SetWithQuickScramble()
void nlgs_3D_SetWithReverseContactOrder(void)
Activate reverse order in macro function ExSolver.
python usage : nlgs_3D_SetWithReverseContactOrder()
void nlgs_3D_UpdateTactBehav(void)
update internal parameters of contact laws for each contact
python usage : nlgs_3D_UpdateTactBehav()
void nlgs_3D_UseJacobiSolver(bool jacobi)
Use a Jacobi solver instead of Gauss Seidel solver.
usage : nlgs_3D_UseJacobiSolver(True) or nlgs_UseJacobiSolver(False)
void nlgs_3D_WriteNormCheck(void)
write norm to file
python usage : nlgs_3D_WriteNormCheck()
int nlgs_AfterIterCheck(void)
Control NLGS convergence.
python usage : convergence = nlgs_AfterIterCheck() convergence (integer) :
void nlgs_BimodalContactOrder(void)
Renumbering of the contact list using the definition of weak and strong network in granular assemblies.
python usage : nlgs_BimodalContactOrder()
void nlgs_ComputeRnod(void)
mapping from local contact forces to global ones
python usage : nlgs_ComputeRnod()
void nlgs_DisplayAfterIterCheck(void)
Display NLGS convergence results.
python usage : nlgs_DisplayAfterIterCheck()
void nlgs_DisplayRlocNSum(void)
Display the sum of normal contact forces.
python usage : nlgs_DisplayRlocNSum()
void nlgs_ExIter(int nb_iter)
Execute NLGS iterations over the contact loop.
python usage : nlgs_ExIter(nb_iter) param[in] nb_iter (integer) : number of iterations to do
void nlgs_ExPost(void)
Run a jacobi iteration with the solution obtained with the NLGS algorithm.
python usage : nlgs_ExPost()
void nlgs_ExPrep(char *cvalue1_c)
Prepare matrix storage.
python usage : nlgs_ExPrep(storage)
void nlgs_ExSolver(char *cvalue1_c, char *cvalue2_c, double rvalue1, double rvalue2, int ivalue1, int ivalue2)
Solve fully the local contact problem.
python usage : nlgs_ExSolver(storage, checktype, tol, relax, nb_iter_check, nb_block_iter)
void nlgs_GetAllThis(double **matrix_out, int *dim1, int *dim2)
Get all interactions in ‘this’ array.
Each interaction has (in this order): coor, tuc, nuc, rlt, rln, vlt, vln
usage : interactions = nlgs_GetAllThis() interactions (double 2D- array) : the interactions
void nlgs_NormCheck(void)
Active one step norm evolution.
python usage : nlgs_NormCheck()
void nlgs_QuickScrambleContactOrder(void)
Random renumbering of the contact list.
python usage : nlgs_QuickScrambleContactOrder()
void nlgs_ReverseContactOrder(void)
Reverse the numbering of the contact list.
python usage : nlgs_ReverseContactOrder()
void nlgs_ScaleRloc(void)
Scale all local contact forces of a factor equal to * 0.9 < f < 1.1.
python usage : nlgs_ScaleRloc()
void nlgs_ScrambleContactOrder(void)
Random renumbering of the contact list.
python usage : nlgs_ScrambleContactOrder()
void nlgs_SetCheckType(char *cvalue1_c, double rvalue1, double rvalue2)
Define numerical convergence of the NLGS algorithm.
python usage : nlgs_SetCheckType(check_type, tolerance, relaxation)
void nlgs_SetWithQuickScramble(void)
active quick scramble in macro function ExSolver
python usage : nlgs_SetWithQuickScramble()
void nlgs_UpdateCohesiveBehav(void)
update internal parameters of contact laws for each contact
python usage : nlgs_UpdateCohesiveBehav(void)
void nlgs_UpdateTactBehav(void)
Update internal parameters of contact lawz for each contact.
python usage : nlgs_UpdateTactBehav()
void nlgs_UseJacobiSolver(bool jacobi)
Use a Jacobi solver instead of Gauss Seidel solver.
usage : nlgs_UseJacobiSolver(True) or nlgs_UseJacobiSolver(False)
void overall_CleanOutBodies(void)
python usage : overall_CleanOutBodies()
void overall_CleanWriteOutFlags(void)
python usage : overall_CleanWriteOutFlags()
void overall_DIME(int idim, int imod)
set space dimension and in 2D the modelling assumption
python usage : overall_DIME(idim, imod)
void overall_DisplayProxTactors(void)
python usage : overall_DisplayProxTactors()
void overall_Finalize(void)
Finalize LMGC90.
python usage : overall_Finalize()
void overall_GetWorkingDirectory(char **string_out, int *string_size)
python usage : path = overall_GetWorkingDirectory()
path (string) : working directory
void overall_InitPostData(int ifirst, int ilast)
python usage : overall_InitPostData(ifirst, ilast)
void overall_Initialize(void)
Initialize LMGC90.
python usage : overall_Initialize()
void overall_RebuildInBodies(void)
python usage : overall_RebuildInBodies()
void overall_RequireXxlComputation(void)
python usage : overall_RequireXxlComputation()
void overall_SelectProxTactors(int Nstep_rough_seek=1)
Prepare contact detection.
python usage : overall_SelectProxTactors(Nstep_rough_seek)
void overall_SetWorkingDirectory(char *cvalue1)
python usage : overall_SetWorkingDirectory(path)
void overall_UpdatePostData(void)
python usage : overall_UpdatePostData()
void overall_UseExperimentalDev(void)
Activate some unstable devs.
python usage : overall_UseExperimentalDev()
void overall_UseExternalFem(void)
Allow to use the externalFem library instead of lmgc90 Fem lib.
python usage : overall_UseExternalFem()
void overall_WriteBodies(void)
python usage : overall_WriteBodies()
void overall_WriteDrivenDof(void)
python usage : overall_WriteDrivenDof()
void overall_WriteOutDisplayFile(int freq_display=0)
python usage : overall_WriteOutDisplayFile(freq_display)
void overall_WriteOutMpValues(int entier)
python usage : overall_WriteOutMpValues(nstep)
void poroMAILx_AddFieldLoad(int IdBody, double *rvector_in, int rlength_in)
Add elementary load through a nodal external field on a given body.
python usage : poroMAILx_AddFieldLoad(IdBody, Ideriv, f)
void poroMAILx_AssembKT(void)
assembles matrice
python usage : poroMAILx_AssembKT()
void poroMAILx_AssembRHS(void)
assembles RHS
python usage : poroMAILx_AssembRHS()
void poroMAILx_BandStorage(void)
use band matrix
python usage : poroMAILx_BandStorage()
void poroMAILx_CleanMemory(void)
Free all memory allocated within poroMAILx module.
python usage : poroMAILx_CleanMemory()
void poroMAILx_ComputeBulk(void)
compute elementary stiffness
python usage : poroMAILx_ComputeBulk()
void poroMAILx_ComputeContactDetectionConfiguration(void)
compute the contact detection configuration
python usage : poroMAILx_ComputeContactDetectionConfiguration()
void poroMAILx_ComputeDamping(void)
compute elemenatry damping
python usage : poroMAILx_ComputeDamping()
void poroMAILx_ComputeDof(void)
computes motion (free + contact)
python usage : poroMAILx_ComputeDof()
void poroMAILx_ComputeFext(void)
compute elementary external forces
python usage : poroMAILx_ComputeFext()
void poroMAILx_ComputeFreeVelocity(void)
computes free motion (without contact contribution)
python usage : poroMAILx_ComputeFreeVelocity()
void poroMAILx_ComputeGrad(void)
apply elementary fields gradient
python usage : poroMAILx_ComputeGrad(void)
void poroMAILx_ComputeMass(void)
compute elementary mass and inertia of bodies
python usage : poroMAILx_ComputeMass()
void poroMAILx_ComputePreconW(void)
compute the precon W on precon bodies
python usage : poroMAILx_ComputePreconW()
double poroMAILx_ComputeResidueNorm(void)
computes the norm of the residue
python usage : norm = poroMAILx_ComputeResidueNorm()
norm (double) : Residue Norm
void poroMAILx_DiagonalStorage(void)
use diagonal matrix
python usage : poroMAILx_DiagonalStorage()
void poroMAILx_DisplayOutDof(void)
Display body degrees of freedom.
python usage : poroMAILx_DisplayOutDof()
void poroMAILx_ExplodedStorage(void)
use element by element matrix
python usage : poroMAILx_ExplodedStorage()
void poroMAILx_FullStorage(void)
use full matrix
python usage : poroMAILx_FullStorage()
void poroMAILx_GetAll(int idBody, double **matrix_out, int *dim1, int *dim2)
return poro mechanical data computed for idBody
python usage : array = poroMAILx_GetAll(idBody)
void poroMAILx_GetBodyVector(char *cvalue1_c, int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get a copy of a vector of a given body.
Python usage : vector = poroMAILx_GetBodyVector(datatype, ibdyty)
void poroMAILx_GetConnectivity(int idBody, int **i4_vector, int *i4_size)
return connectivity of idBody elements
python usage : vector = poroMAILx_GetConnectivity(idBody)
void poroMAILx_GetCoor(int idBody, double **matrix_out, int *dim1, int *dim2)
return node coordinates of idBody
python usage : array = poroMAILx_GetCoor(idBody)
int poroMAILx_GetMecaVectorFieldRank(int ibdyty, int blmty, char *name)
Get the rank of field of an element of a body from its name.
python usage : f_rank = poroMAILx_GetMecaVectorFieldRank(ibdyty, iblmty, name)
int poroMAILx_GetNbNodes(int ivalue)
Get the number of nodes of a poroMAILx.
python usage : nb_nodes = poroMAILx_GetNbNodes(ibdyty)
int poroMAILx_GetNbPoroMAILx(void)
Get the number of poroMAILx.
python usage : nb_poroMAILx = poroMAILx_GetNbPoroMAILx()
nb_poroMAILx (integer) : number of poroMAILx
void poroMAILx_GetStrain(int ivalue1, double **matrix_out, int *dim1, int *dim2, int ivalue4=0)
Get a copy of a strain of a given body.
Python usage : strain = poroMAILx_GetStrain(ibdyty, required_field=0)
void poroMAILx_GetStress(int ivalue1, double **matrix_out, int *dim1, int *dim2, int ivalue4=0)
Get a copy of a stress of a given body.
Python usage : stress = poroMAILx_GetStress(ibdyty,required_field=0)
int poroMAILx_GetTherVectorFieldRank(int ibdyty, int blmty, char *name)
Get the rank of field of an element of a body from its name.
python usage : f_rank = poroMAILx_GetTherVectorFieldRank(ibdyty, iblmty, name)
void poroMAILx_IncrementStep(void)
correction of the configuration parameter using the theta-method
python usage : poroMAILx_IncrementStep()
void poroMAILx_LoadALE(int IdBody)
Apply an ALE Formulation in Fluid zone.
python usage : poroMAILx_LoadALE(IdBody)
void poroMAILx_LoadBehaviours(void)
load from bulk_behav
python usage : pordMAILx_LoadBehaviours()
void poroMAILx_LoadModels(void)
load from MAILx and models
python usage : poroMAILx_LoadModels()
void poroMAILx_PostModels(void)
load from MAILx and models for post
python usage : poroMAILx_PostModels()
void poroMAILx_PushProperties(void)
declares to models couple (model,behav)
python usage : poroMAILx_PushProperties()
void poroMAILx_PutBodyVector(char *cvalue1_c, int ivalue1, double *rvector_in, int rlength_in)
Set a vector of a given body.
python usage : poroMAILx_PutBodyVector(datatype, ibdyty, vector)
void poroMAILx_ReadDrivenDof(void)
Read DRV_DOF.DAT.
python usage : poroMAILx_ReadDrivenDof()
void poroMAILx_ReadIniDof(int step=0)
Read DOF.INI.
If step <= 0 : DATBOX/DOF.INI file is read Else : OUTBOX/DOF.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniDof last call
python usage : poroMAILx_ReadIniDof(step=0)
void poroMAILx_ReadIniGPV(int step=0)
Read GPV file.
If step <= 0 : DATBOX/GPV.INI file is read Else : OUTBOX/GPV.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniGPV last call
python usage : poroMAILx_ReadIniGPV(step=0)
void poroMAILx_ReadIniMecaDof(int step=0)
Read DOF file.
If step <= 0 : DATBOX/DOF.INI file is read Else : OUTBOX/DOF.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniMecaDof last call
python usage : poroMAILx_ReadIniMecaDof(step=0)
void poroMAILx_ReadIniMecaGPV(int step=0)
Read GPV file.
If step <= 0 : DATBOX/GPV.INI file is read Else : OUTBOX/GPV.OUT.num is read, num being the parameter used in TimeEvolution_ReadIniMecaGPV last call
python usage : poroMAILx_ReadIniMecaGPV(step=0)
void poroMAILx_SetMecaScalarFieldByElement(int IdBody, int f_rank, double *rvector_in, int rlength_in)
Update elementary scalar field through a element external field on a given body.
Field values are stored at Gauss point, on an element all Gauss point have the element value
python usage : poroMAILx_SetMecaScalarFieldByElement(IdBody, f_rank, f)
void poroMAILx_SetMecaScalarFieldByNode(int IdBody, int f_rank, double *rvector_in, int rlength_in)
Update an external field on a given body.
python usage : poroMAILx_SetMecaScalarFieldByNode(IdBody, f_rank, f)
void poroMAILx_SetMecaVectorFieldByElement(int ibdyty, int f_rank, double *matrix_in, int dim1, int dim2)
Update elementary fields through a nodal external field on a given body.
Use the form functions of the elements and input values to compute and store field values at Gauss points.
python usage : poroMAILx_SetVectorFieldByElement(IdBody, f_rank, f)
void poroMAILx_SetMecaVectorFieldByNode(int ibdyty, int f_rank, double *matrix_in, int dim1, int dim2)
Update elementary fields through a nodal external field on a given body.
Use the form functions of the elements and input values to compute and store field values at Gauss points.
python usage : poroMAILx_SetFieldByNode(IdBody, f_rank, f)
void poroMAILx_SetPreconAllBodies(void)
ask for precomputation of the W matrix on support node dofs of contactors for all bodies. Assumes bulk behaviour is linear.
python usage : poroMAILx_SetPreconAllBodies()
void poroMAILx_SetTherScalarFieldByElement(int IdBody, int f_rank, double *rvector_in, int rlength_in)
Update elementary scalar field through a element external field on a given body.
Field values are stored at Gauss point, on an element all Gauss point have the element value
python usage : poroMAILx_SetTherScalarFieldByElement(IdBody, f_rank, f)
void poroMAILx_SetTherScalarFieldByNode(int IdBody, int f_rank, double *rvector_in, int rlength_in)
Update an external field on a given body.
python usage : poroMAILx_SetTherieldByNode(IdBody, f_rank, f)
void poroMAILx_SetTherVectorFieldByElement(int ibdyty, int f_rank, double *matrix_in, int dim1, int dim2)
Update elementary fields through a nodal external field on a given body.
Use the form functions of the elements and input values to compute and store field values at Gauss points.
python usage : poroMAILx_SetFieldByElement(IdBody, f_rank, f)
void poroMAILx_SetTherVectorFieldByNode(int ibdyty, int f_rank, double *matrix_in, int dim1, int dim2)
Update elementary fields through a nodal external field on a given body.
Use the form functions of the elements and input values to compute and store field values at Gauss points.
python usage : poroMAILx_SetFieldByNode(IdBody, f_rank, f)
void poroMAILx_SetVlocyDrivenDof(int IdBody, int f_dof, int f_noce, double f_value)
Apply Drv Dof on a given body.
python usage : poroMAILx_SetVlocyDrivenDof(IdBody, f_dof, f_node, f_value)
void poroMAILx_SkylineStorage(void)
use skyline matrix
python usage : poroMAILx_SkylineStorage()
void poroMAILx_SparseStorage(void)
use sparse matrix
python usage : poroMAILx_SparseStorage()
void poroMAILx_SymmetricShape(void)
assume matrix is symmetrical
python usage : poroMAILx_SymmetricShape()
void poroMAILx_UnspecifiedShape(void)
does not assume any thing on matrix shape
python usage : poroMAILx_UnspecifiedShape()
void poroMAILx_UpdateBulk(void)
update begin elementary fields with current elementary fields
python usage : poroMAILx_UpdateBulk(void)
void poroMAILx_UpdateDof(void)
update begin dof with current dof
python usage : poroMAILx_UpdateDof()
void poroMAILx_WithoutRenumbering(void)
skip renumbering of the unknowns using a rcc method
python usage : poroMAILx_WithoutRenumbering()
void poroMAILx_WriteDrivenDof(void)
Write DRV_DOF.OUT.
python usage : poroMAILx_WriteDrivenDof()
void poroMAILx_WriteLastDof(void)
Write ascii DOF.LAST file.
python usage : poroMAILx_WriteLastDof()
void poroMAILx_WriteOutDof(void)
Write ascii DOF.OUT file. Can be activate only each N step.
python usage : poroMAILx_WriteOutDof()
void post2D_CircularSelection(double rvalue1, double rvalue2, double rvalue3)
Initialize data for postreatment using a circular selection.
python usage : post2D_CircularSelection(x_coor, y_coor, radius)
void post2D_CleanMemory(void)
Free all memory allocated within post2D module.
python usage : post2D_CleanMemory()
void post2D_DeclareNewGMVMaterial(int ivalue)
Adds specific materail for the display.
python usage : post2D_DeclareNewGMVMaterial(ivalue)
void post2D_DisplacementAmplification(double rvalue)
It allows to amplify the magnitude of displacement.
python usage : post2D_DisplacementAmplication(factor)
void post2D_Init(void)
Initialize the database.
python usage : post2D_Init()
void post2D_InitBinary(void)
Initialize the database.
python usage : post2D_InitBinary()
void post2D_InitBinaryGMV(void)
Initialize the database.
python usage : post2D_InitBinaryGMV()
void post2D_InitGMV(void)
Initialize the database.
python usage : post2D_InitGMV()
void post2D_RestartGMV(void)
It allows you not rewrite in some displayed file.
python usage : post2D_RestartGMV()
Specifies that you want to restart the displaying gmv file from the value stored in DISPLAY/DISPLAYED_GMV
void post2D_SetDisplayedField(char *cvalue_c)
Specifies which data you want to compute an display between two displayed steps.
python usage : post2D_SetDisplayedField(field)
void post2D_SetNewGMVMaterial(int ivalue, char *cvalue_c)
Adds specific material for the display.
python usage : post2D_SetNewGMVMaterial(ivalue, list_behav)
void post2D_SetPeriodicCondition(double rvalue)
Set the periode of simulation system, the X value reaches between 0 and rvalue.
python usage : post2D_SetPeriodicCondition(period)
void post2D_SetReferenceRadius(double rvalue)
Set the size of the glyph used to visualize contact.
python usage : post2D_SetReferenceRadius(radius)
void post2D_SetReferenceReacMax(double rvalue)
Set the maximum reference value of the contact force.
python usage : post2D_SetReferenceReacMax(max_reac)
void post2D_WriteOutDisplayFile(int ivalue)
Write gmv file.
python usage : post2D_WriteOutDisplayFile(ivalue)
void post2D_WriteOutGMV(int ivalue)
Write gmv file.
python usage : post2D_WriteOutGMV(ivalue)
void post2D_reset(void)
Reset flag to initialize post2D again.
python usage : post2D_reset()
void post3D_CleanMemory(void)
Free all memory allocated within post3D module.
python usage : post3D_CleanMemory()
void post3D_GetBody(double **r8_vector, int *r8_size)
python usage : vector = GetBody()
vector (doubel array) : output vector
void post3D_GetBodyIni(double **r8_vector, int *r8_size)
python usage : vector = GetBodyIni()
vector (doubel array) : output vector
int post3D_GetBodyIniStoredDataSize(void)
python usage : ires = post3D_GetBodyIniStoredDataSize()
ires (integer) : number of data stored
int post3D_GetBodyStoredDataSize(void)
python usage : ires = post3D_GetBodyStoredDataSize()
ires (integer) : number of data stored
void post3D_GetContact(double **r8_vector, int *r8_size)
python usage : vector = GetContact()
vector (doubel array) : output vector
int post3D_GetContactStoredDataSize(void)
python usage : ires = post3D_GetContactStoredDataSize()
ires (integer) : number of data stored
int void post3D_GetNbContact(void)
python usage : ires = post3D_GetNbContact()
ires (integer) : number of contacts 3D
int post3D_GetNbRbdy3(void)
python usage : nb_RBDY3 = post3D_GetNbRbdy3()
nb_RBDY3 (integer) : number of rigid bodies 3D
void post3D_Init(void)
Do all the computation without displaying the value.
python usage : post3D_Init()
Needed for a use in combination with LMGC90/POSTPRO
void post3D_LoadExternalSurface(void)
load surf.txt to display a surface not traingulated
void post3D_LoadExternalSurface(void) python usage : post3D_LoadExternalSurface(void)
void post3D_SetDisplayedField(char *cvalue_c)
Specifies which data you want to compute an display between two displayed steps.
python usage : post3D_SetDisplayedField(field)
void post3D_SetRadiusPT3Dx(double ratio)
Set the spher radius used to display PT3Dx.
python usage : post3D_SetRadiusPT3Dx(ratio)
void post3D_SetReferenceRadius(double rvalue)
Set the reference value for displaying the contact forces.
python usage : post3D_SetReferenceRadius(ref_radius)
void post3D_SetXPeriodicCondition(double xperiod)
initialise data for simulation using periodic condition
python usage : post3D_SetXPeriodicCondition(xperiod)
void post3D_SetYPeriodicCondition(double yperiode)
initialise data for simulation using periodic condition
void post3D_SetYPeriodicCondition(double yperiod) python usage : post3D_SetYPeriodicCondition(yperiod)
void post3D_Update(void)
Do all the computation without displaying the value.
python usage : post3D_Update()
Needed for a use in combination with LMGC90/POSTPRO
void postpro_3D_CleanMemory(void)
Free all memory allocated within postpro_3D module.
python usage : postpro_3D_CleanMemory()
void postpro_3D_ClosePostproFiles(void)
Close all postpro files.
python usage : postpro_3D_ClosePostproFiles()
double postpro_3D_GetKineticEnergy(void)
Compute Kinetic Energy for all bodies (rigids and defo)
python usage : KE = postpro_3D_GetKineticEnergy()
void postpro_3D_PostproBeforeComputation(void)
Data initialization and scan postprocessing function which should be called before the computation process.
python usage : postpro_3D_PostproBeforeComputation()
void postpro_3D_PostproDuringComputation(void)
Scan postprocessing function which should be call during the computation process.
python usage : postpro_3D_PostproDuringComputation()
void postpro_CleanMemory(void)
Free all memory allocated within postpro module.
python usage : postpro_CleanMemory()
void postpro_ClosePostproFiles(void)
Close all postpro files.
python usage : postpro_ClosePostproFiles()
void postpro_MoveCircularSelectionZone(double rvalue1, double rvalue2)
Increment the position of the circular selection defined with CIRCULAR_SELECTION.
python usage : postpro_MoveCircularSelectionZone(rvalue1, rvalu2)
void postpro_PostproBeforeComputation(void)
Data initialization and scan postprocessing function which should be called before the computation process.
python usage : postpro_PostproBeforeComputation()
void postpro_PostproDuringComputation(void)
Scan postprocessing function which should be call during the computation process.
python usage : postpro_PostproDuringComputation()
void postpro_SetCircularSelectionZone(double rvalue1, double rvalue2, double rvalue3)
Initialize data for postreatment using a circular selection.
python usage : postpro_SetCircularSelectionZone(rvalue1, rvalu2, rvalue3)
void surface_T3_compute_volume_inertia(double *rvector_in, int rlength_in, int *ivector_inout, int ilength_inout, double *rvector_out, int rlength_out, double *rvector_out2, int rlength_out2, double *res)
Computes the volume of an object described by a triangulated surface.
WARNING: 1) we assume size_coor is three times the number of nodes and size_connec is three times the number of elements python call: x_G, I, vol=surface_T3_compute_volume_inertia(coor, connec, 3, 9)
void surface_T3_identify_entities(int nbnode, int max_adj_ele_2_node, int *ivector_in, int ilength_in, int *ivector_out, int ilength_out)
Attributes an entity number to triangles, by computing connected components.
WARNING: 1) we assume size_connec is three times the number of elements and size_ele2entity is the number of elements python call: ele2entity=surface_T3_identify_entities(nbnode, max_adj_ele_2_node, connec, nbele)
void tact_behav_AddToSeeContainer(char *c_cdbdy, char *c_cdtac, char *c_cdcol, char *c_behav, char *c_anbdy, char *c_antac, char *c_ancol, double c_alert, double c_global_alert)
add a see table to the container
python usage : tact_behav_AddToSeeContainer(cdbdy,cdtac,cdcol,behav,anbdy,antac,ancol,alert,global_alert)
void tact_behav_AppendOutTactBehav(void)
write (append) tact and see to OUTBOX/TACT_BEHAV.OUT
python usage : tact_behav_AppendOutTactBehav()
void tact_behav_CleanMemory(void)
Free all memory allocated within tact_behav module.
python usage : tact_behav_CleanMemory()
void tact_behav_CleanOutTactBehav(void)
erase OUTBOX/TACT_BEHAV.OUT
python usage : tact_behav_CleanOutTactBehav()
void tact_behav_CloseBehavContainer(void)
close the container (access as an array)
python usage : tact_behav_TactBehavContainer()
void tact_behav_CloseSeeContainer(void)
close the container (access as an array)
python usage : tact_behav_CloseSeeContainer()
void tact_behav_CollectOutTactBehav(void)
old fashion read from OUTBOX/TACT_BEHAV.OUT
python usage : tact_behav_CollectOutTactBehav()
void tact_behav_FillContainersFromFile(void)
read DATBOX/TACT_BEHAV.DAT and fill the containers (see and tact)
python usage : tact_behav_FillContainersFromFile()
int tact_behav_GetNbTactBehav(void)
get the number of tact laws
python usage : nb_tact_behav = tact_behav_GetNbTactBehav()
double tact_behav_GetParam(int i_tact, int i_param)
get the value ...
python usage : param = tact_behav_GetParam(i_tact,i_param)
int tact_behav_GetParamRankFromName(int i_tact, char *cvalue1)
get the rank of a param for a given tact behav law
python usage : rank = tact_behav_GetParamRankFromName(i_tact,c5)
void tact_behav_GetTactBehav(int i_tb, char **string_out, int *string_size, char **c5, double **r8_vector, int *r8_size)
get a given tact law
python usage : [lawty, behav, param] = tact_behav_GetTactBehav(i_tb)
int tact_behav_GetTactBehavRankFromName(char *cvalue1)
get the rank of a tact behav law
python usage : rank = tact_behav_GetTactBehavRankFromName(c5)
void tact_behav_OpenBehavContainer(void)
open the container (access as a linked list) in order to add/remove objects
python usage : tact_behav_OpenBehavContainer()
void tact_behav_OpenSeeContainer(void)
open the container (access as a linked list) in order to add/remove objects
python usage : tact_behav_OpenSeeContainer()
void tact_behav_ReadBehaviours(void)
open + fill + close
python usage : tact_behav_ReadBehaviours()
void tact_behav_RebuildInTactBehav(void)
write (replace) tact and see to DATBOX/TACT_BEHAV.DAT
python usage : tact_behav_RebuildInTactBehav()
void void tact_behav_SetCZMwithInitialFriction(int pow=0)
define the way friction is taken into account when CZ is not broken: =0 constant value, =1 linear evolution, 2 = quadratic
python usage : tact_behav_SetCZMwithInitialFriction(pow)
void tact_behav_SetD1overD2(double r8)
set the value DI/DII for Tvergaard - Hutchinson trapezoidal law
python usage : tact_behav_SetD1overD2(param)
void tact_behav_SetDilatancyParameters(double fric, double height)
set dilatancy parameters
python usage : tact_behav_SetDilatancyParameters(fric,height)
void tact_behav_SetG1overG2(double r8)
set the value GI/GII
python usage : tact_behav_SetG1overG2(param)
void tact_behav_SetParam(int i_tact, int i_param, double r8)
set the value ...
python usage : tact_behav_SetParam(i_tact, i_param, param)
void tact_behav_SetRNcap(double r8)
set a maximal compression value
python usage : tact_behav_SetRNcap(param)
void tact_behav_SetS1overS2(double r8)
set the value SI/SII
python usage : tact_behav_SetS1overS2(param)
void tact_behav_WriteBehaviours(void)
write (replace) tact and see to OUTBOX/TACT_BEHAV.OUT
python usage : tact_behav_WriteBehaviours()
void void tact_behav_initFrictionEvolution()
[experimental] read a friction time evolution map
python usage : tact_behav_initFrictionEvolution()
void tact_behav_setRandomFriction(double r8)
Active variation of local friction.
python usage : tact_behav_setRandomFriction(r8)
void therMAILx_AddNodalFieldDivergence(int ivalue1, int ivalue2)
Add the divergence of a field to external flux.
python usage : therMAILx_AddNodalFieldDivergence(ibdyty, ifield)
void therMAILx_AddSource(int ivalue1, int ivalue2)
Add a volumic source into a given body.
python usage : therMAILx_AddSource(ibdyty, ifield)
void therMAILx_AssembThermKT(int *ivector_in=NULL, int ilength_in=0)
assembles elementary matrices
python usage : therMAILx_AssembKT(i_list)
void therMAILx_AssembThermRHS(int *ivector_in=NULL, int ilength_in=0)
assembles elementary vectors
python usage : therMAILx_AssembRHS(i_list)
void therMAILx_BandStorage(void)
use band matrix
python usage : therMAILx_BandStorage()
void therMAILx_CleanMemory(void)
Free all memory allocated within therMAILx module.
python usage : therMAILx_CleanMemory()
void therMAILx_ComputeCapacity(int *ivector_in=NULL, int ilength_in=0)
computes the elemetary capacity matrices
python usage : therMAILx_ComputeCapacity(i_list)
void therMAILx_ComputeConductivity(int *ivector_in=NULL, int ilength_in=0)
computes the elementary conductivity matrices of a list of bodies
If the input list is empty, the conductivities of all bodies will be computed
python usage : therMAILx_ComputeConductivity(i_list)
void therMAILx_ComputeConvection(int *ivector_in=NULL, int ilength_in=0)
compute elementary convection terms
python usage : therMAILx_ComputeConvection(i_list)
void therMAILx_ComputeExternalFlux(int *ivector_in=NULL, int ilength_in=0)
compute elementary external flux
python usage : therMAILx_ComputeExternalFlux(i_list)
void therMAILx_ComputeInternalFlux(int *ivector_in=NULL, int ilength_in=0)
compute elementary internal flux
python usage : therMAILx_ComputeInternalFlux(i_list)
double therMAILx_ComputeResidueNorm(int *ivector_in=NULL, int ilength_in=0)
compute the residue of the thermal equation
python usage : norm = therMAILx_ComputeResidueNorm(i_list)
void therMAILx_ComputeThermDof(int *ivector_in=NULL, int ilength_in=0)
computes current dof
python usage : therMAILx_ComputeThermDof(i_list)
void therMAILx_ComputeThermFields(int *ivector_in=NULL, int ilength_in=0)
computes elementary fields
python usage : therMAILx_ComputeThermFields(i_list)
void therMAILx_DiagonalStorage(void)
use diagonal matrix
python usage : therMAILx_DiagonalStorage()
void therMAILx_DisplayOutDof(void)
Display body degrees of freedom.
python usage : therMAILx_DisplayOutDof()
void therMAILx_ExplodedStorage(void)
use element by element matrix
python usage : therMAILx_ExplodedStorage()
void therMAILx_FullStorage(void)
use full matrix
python usage : therMAILx_FullStorage()
void therMAILx_GetAll(int idBody, double **matrix_out, int *dim1, int *dim2)
return mechanical data computed for idBody
python usage : array = therMAILx_GetAll(idBody)
void therMAILx_GetBodyVector(char *cvalue1_c, int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get a copy of a vector of a given body.
python usage : vector = therMAILx_GetBodyVector(datatype, ibdyty)
void therMAILx_GetConnectivity(int idBody, int **i4_vector, int *i4_size)
return connectivity of idBody elements
python usage : vector = therMAILx_GetConnectivity(idBody)
void therMAILx_GetCoor(int idBody, double **matrix_out, int *dim1, int *dim2)
return node coordinates of idBody
python usage : array = therMAILx_GetCoor(idBody)
void therMAILx_GetFlux(int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get a copy of a gradient of a given body.
Python usage : Flux_T = therMAILx_GetFlux(ibdyty)
void therMAILx_GetGrad(int ivalue1, double **matrix_out, int *dim1, int *dim2)
Get a copy of a gradient of a given body.
Python usage : grad_T = therMAILx_GetGrad(ibdyty)