Python API reference: deme¶
This reference is generated from the signatures and docstrings exposed by
the installed deme extension.
Module functions¶
- DEMBoxGridSampler()¶
DEMBoxGridSampler(BoxCenter: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], HalfDims: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], GridSizeX: typing.SupportsFloat | typing.SupportsIndex, GridSizeY: typing.SupportsFloat | typing.SupportsIndex = -1.0, GridSizeZ: typing.SupportsFloat | typing.SupportsIndex = -1.0) -> list[float3] Return regularly spaced points inside a box. Negative Y or Z spacing reuses the X spacing.
- DEMBoxHCPSampler()¶
DEMBoxHCPSampler(BoxCenter: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], HalfDims: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], separation: typing.SupportsFloat | typing.SupportsIndex) -> list[float3] Return hexagonally close-packed points inside a box.
- DEMCylSurfSampler()¶
DEMCylSurfSampler(CylCenter: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], CylAxis: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], CylRad: typing.SupportsFloat | typing.SupportsIndex, CylHeight: typing.SupportsFloat | typing.SupportsIndex, ParticleRad: typing.SupportsFloat | typing.SupportsIndex, spacing: typing.SupportsFloat | typing.SupportsIndex = 1.2) -> list[list[float]] Return points on a cylindrical surface. ``spacing`` scales the nominal particle-diameter separation.
- FrameTransformGlobalToLocal()¶
FrameTransformGlobalToLocal(arg0: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], arg1: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], arg2: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> list[float] Translating the inverse of the provided vec then applying a local inverse rotation of the provided rot_Q, then return the result.
- FrameTransformLocalToGlobal()¶
FrameTransformLocalToGlobal(arg0: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], arg1: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], arg2: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> list[float] Apply a local rotation then a translation, then return the result.
- GetDEMEDataFile()¶
GetDEMEDataFile(relative_path: str) -> str Resolve a path relative to DEME's installed data directory.
Classes¶
DEMSolver¶
- class DEMSolver¶
Own a DEM simulation and its dynamic and kinematic CUDA workers. Configure materials, geometry, particles, solver options, and trackers before calling ``Initialize``. Device placement is fixed at construction. Keep this object alive while using any solver-owned material, template, tracker, or inspector handle.
- DEMSolver.__init__()¶
__init__(*args, **kwargs) Overloaded function. 1. __init__(self: deme._deme.DEMSolver, nGPUs: typing.SupportsInt | typing.SupportsIndex = 2) -> None Construct a solver using one or two logical CUDA devices. With one GPU, both workers use device 0. With two requested GPUs and at least two visible devices, the dynamic worker uses device 0 and the kinematic worker uses device 1. If only one device is visible, both workers use device 0 and a warning is emitted. Only 1 and 2 are valid values. 2. __init__(self: deme._deme.DEMSolver, device_ids: collections.abc.Sequence[typing.SupportsInt | typing.SupportsIndex]) -> None Construct a solver on explicit logical CUDA device IDs. One ID places both workers on that device. For two IDs, the first selects the dynamic worker and the second selects the kinematic worker. Repeated IDs are valid. IDs use the numbering visible to this process, including the effects of ``CUDA_VISIBLE_DEVICES``.
- DEMSolver.AddBCPlane()¶
AddBCPlane(self: deme._deme.DEMSolver, arg0: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], arg1: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], arg2: deme::DEMMaterial) -> deme::DEMExternObj Add an analytical plane to the simulation.
- DEMSolver.AddClumps()¶
AddClumps(*args, **kwargs) Overloaded function. 1. AddClumps(self: deme._deme.DEMSolver, arg0: deme::DEMClumpBatch) -> deme::DEMClumpBatch Load input clumps (topology types and initial locations) on a per-pair basis. Note that the initial location means the location of the clumps' CoM coordinates in the global frame. 2. AddClumps(self: deme._deme.DEMSolver, arg0: deme::DEMClumpTemplate, arg1: collections.abc.Sequence[collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]]) -> deme::DEMClumpBatch Load input clumps (topology types and initial locations) on a per-pair basis. Note that the initial location means the location of the clumps' CoM coordinates in the global frame. 3. AddClumps(self: deme._deme.DEMSolver, arg0: collections.abc.Sequence[deme::DEMClumpTemplate], arg1: collections.abc.Sequence[collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]]) -> deme::DEMClumpBatch Load input clumps (topology types and initial locations) on a per-pair basis. Note that the initial location means the location of the clumps' CoM coordinates in the global frame.
- DEMSolver.AddCombinedFromTemplate()¶
AddCombinedFromTemplate(*args, **kwargs) Overloaded function. 1. AddCombinedFromTemplate(self: deme._deme.DEMSolver, combined_template: deme::DEMCombinedTemplate, init_pos: collections.abc.Sequence[float3], init_oriQ: collections.abc.Sequence[float4] = []) -> deme::DEMCombinedInstances Instantiate a combined template at one or more user-specified global poses (batch). 2. AddCombinedFromTemplate(self: deme._deme.DEMSolver, combined_template: deme::DEMCombinedTemplate, init_pos: float3 = (0.0, 0.0, 0.0), init_oriQ: float4 = (0.0, 0.0, 0.0, 1.0)) -> deme::DEMCombinedInstances Instantiate a combined template at a single user-specified global pose.
- DEMSolver.AddExternalObject()¶
AddExternalObject(self: deme._deme.DEMSolver) -> deme::DEMExternObj Add an analytical object to the simulation system.
- DEMSolver.AddFamilyPrescribedAcc()¶
AddFamilyPrescribedAcc(self: deme._deme.DEMSolver, ID: typing.SupportsInt | typing.SupportsIndex, X: str, Y: str, Z: str, pre: str = 'none') -> None The entities in this family will always experienced an extra acceleration defined using this method.
- DEMSolver.AddFamilyPrescribedAngAcc()¶
AddFamilyPrescribedAngAcc(self: deme._deme.DEMSolver, ID: typing.SupportsInt | typing.SupportsIndex, X: str, Y: str, Z: str, pre: str = 'none') -> None The entities in this family will always experienced an extra angular acceleration defined using this method.
- DEMSolver.AddKernelInclude()¶
AddKernelInclude(self: deme._deme.DEMSolver, arg0: str) -> None Add a library that the kernels will be compiled with (so that the user can use the provided methods in their customized code, like force model).
- DEMSolver.AddMeshFromTemplate()¶
AddMeshFromTemplate(self: deme._deme.DEMSolver, mesh_template: deme::DEMMesh, init_pos: float3 = (0.0, 0.0, 0.0)) -> deme::DEMMesh Instantiate a mesh from a cached template at the requested initial position.
- DEMSolver.AddOwnerNextStepAcc()¶
AddOwnerNextStepAcc(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: collections.abc.Sequence[float3]) -> None Add an extra acceleration to a owner for the next time step.
- DEMSolver.AddOwnerNextStepAngAcc()¶
AddOwnerNextStepAngAcc(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: collections.abc.Sequence[float3]) -> None Add an extra angular acceleration to a owner for the next time step.
- DEMSolver.AddShellMesh()¶
AddShellMesh(self: deme._deme.DEMSolver, mesh: deme::DEMMesh, shell_thickness: typing.SupportsFloat | typing.SupportsIndex) -> deme::DEMMesh Load a finite-thickness shell mesh from a user-constructed mesh object.
- DEMSolver.AddWavefrontMeshObject()¶
AddWavefrontMeshObject(*args, **kwargs) Overloaded function. 1. AddWavefrontMeshObject(self: deme._deme.DEMSolver, filename: str, mat: deme::DEMMaterial, load_normals: bool = True, load_uv: bool = False) -> deme::DEMMesh Load a mesh-represented object. 2. AddWavefrontMeshObject(self: deme._deme.DEMSolver, arg0: deme::DEMMesh) -> deme::DEMMesh Load a mesh-represented object. 3. AddWavefrontMeshObject(self: deme._deme.DEMSolver, filename: str, load_normals: bool = True, load_uv: bool = False) -> deme::DEMMesh Load a mesh-represented object.
- DEMSolver.AddWavefrontShellObject()¶
AddWavefrontShellObject(*args, **kwargs) Overloaded function. 1. AddWavefrontShellObject(self: deme._deme.DEMSolver, filename: str, mat: deme::DEMMaterial, shell_thickness: typing.SupportsFloat | typing.SupportsIndex, load_normals: bool = True, load_uv: bool = False) -> deme::DEMMesh Load a finite-thickness shell mesh from a mesh file. 2. AddWavefrontShellObject(self: deme._deme.DEMSolver, filename: str, shell_thickness: typing.SupportsFloat | typing.SupportsIndex, load_normals: bool = True, load_uv: bool = False) -> deme::DEMMesh Load a finite-thickness shell mesh from a mesh file without assigning material immediately.
- DEMSolver.ChangeClumpFamily()¶
ChangeClumpFamily(self: deme._deme.DEMSolver, fam_num: typing.SupportsInt | typing.SupportsIndex, X: tuple[typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex] = (-1000000000000000.0, 1000000000000000.0), Y: tuple[typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex] = (-1000000000000000.0, 1000000000000000.0), Z: tuple[typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex] = (-1000000000000000.0, 1000000000000000.0), orig_fam: collections.abc.Set[typing.SupportsInt | typing.SupportsIndex] = set()) -> int Change the family number for the clumps in a box region to the specified value.
- DEMSolver.ChangeFamily()¶
ChangeFamily(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: typing.SupportsInt | typing.SupportsIndex) -> None Change all entities with family number ID_from to have a new number ID_to, when the condition defined by the string is satisfied by the entities in question. This should be called before initialization, and will be baked into the solver, so the conditions will be checked and changes applied every time step.
- DEMSolver.ChangeFamilyWhen()¶
ChangeFamilyWhen(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: typing.SupportsInt | typing.SupportsIndex, arg2: str) -> None Change all entities with family number ID_from to have a new number ID_to, when the condition defined by the string is satisfied by the entities in question. This should be called before initialization, and will be baked into the solver, so the conditions will be checked and changes applied every time step.
- DEMSolver.ClearCache()¶
ClearCache(self: deme._deme.DEMSolver) -> None Remove host-side cached vectors (so you can re-define them, and then re-initialize system).
- DEMSolver.ClearThreadCollaborationStats()¶
ClearThreadCollaborationStats(self: deme._deme.DEMSolver) -> None Reset the collaboration stats between dT and kT back to the initial value (0). You should call this if you want to start over and re-inspect the stats of the new run; otherwise, it is generally not needed, you can go ahead and destroy DEMSolver.
- DEMSolver.ClearTimingStats()¶
ClearTimingStats(self: deme._deme.DEMSolver) -> None Reset the recordings of the wall time and percentages of wall time spend on various solver tasks.
- DEMSolver.CorrectFamilyAngVel()¶
CorrectFamilyAngVel(self: deme._deme.DEMSolver, ID: typing.SupportsInt | typing.SupportsIndex, X: str, Y: str, Z: str, pre: str = 'none') -> None The entities in this family will always experience an added angular-velocity correction defined using this method. At the same time, they are still subject to the `simulation physics'.
- DEMSolver.CorrectFamilyLinVel()¶
CorrectFamilyLinVel(self: deme._deme.DEMSolver, ID: typing.SupportsInt | typing.SupportsIndex, X: str, Y: str, Z: str, pre: str = 'none') -> None The entities in this family will always experience an added linear-velocity correction defined using this method. At the same time, they are still subject to the `simulation physics'.
- DEMSolver.CorrectFamilyPosition()¶
CorrectFamilyPosition(self: deme._deme.DEMSolver, ID: typing.SupportsInt | typing.SupportsIndex, X: str, Y: str, Z: str, pre: str = 'none') -> None The entities in this family will always experience an added positional correction defined using this method. At the same time, they are still subject to the `simulation physics'.
- DEMSolver.CorrectFamilyQuaternion()¶
CorrectFamilyQuaternion(self: deme._deme.DEMSolver, ID: typing.SupportsInt | typing.SupportsIndex, q_formula: str) -> None The entities in this family will always experience an added quaternion correction defined using this method. At the same time, they are still subject to the `simulation physics'.
- DEMSolver.CreateInspector()¶
CreateInspector(*args, **kwargs) Overloaded function. 1. CreateInspector(self: deme._deme.DEMSolver, quantity: str = 'clump_max_z') -> deme._deme.DEMInspector Create a inspector object that can help query some statistical info of the clumps in the simulation. 2. CreateInspector(self: deme._deme.DEMSolver, arg0: str, arg1: str) -> deme._deme.DEMInspector Create a inspector object that can help query some statistical info of the clumps in the simulation.
- DEMSolver.DefineContactForceModel()¶
DefineContactForceModel(self: deme._deme.DEMSolver, arg0: str) -> deme._deme.DEMForceModel Define a custom contact force model by a string. Returns a pointer to the force model in use.
- DEMSolver.DisableAdaptiveBinSize()¶
DisableAdaptiveBinSize(self: deme._deme.DEMSolver) -> None Disable the use of adaptive bin size (always use initial size)
- DEMSolver.DisableAdaptiveUpdateFreq()¶
DisableAdaptiveUpdateFreq(self: deme._deme.DEMSolver) -> None Disable the use of adaptive max update step count (always use initial update frequency)
- DEMSolver.DisableAllMeshWearModels()¶
DisableAllMeshWearModels(self: deme._deme.DEMSolver) -> None Disable all active mesh wear models.
- DEMSolver.DisableContactBetweenFamilies()¶
DisableContactBetweenFamilies(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: typing.SupportsInt | typing.SupportsIndex) -> None Instruct the solver that the 2 input families should not have contacts (a.k.a. ignored, if such a pair is encountered in contact detection). These 2 families can be the same (which means no contact within members of that family).
- DEMSolver.DisableFamilyOutput()¶
DisableFamilyOutput(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Prevent entites associated with this family to be outputted to files.
- DEMSolver.DisableJitifyClumpTemplates()¶
DisableJitifyClumpTemplates(self: deme._deme.DEMSolver) -> None Disable jitification of clump templates (use flattened arrays instead).
- DEMSolver.DisableJitifyMassProperties()¶
DisableJitifyMassProperties(self: deme._deme.DEMSolver) -> None Disable jitification of mass properties (use flattened arrays instead).
- DEMSolver.DisableMeshWearModel()¶
DisableMeshWearModel(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Disable mesh wear model for one owner.
- DEMSolver.DisableTrianglePVTracking()¶
DisableTrianglePVTracking(self: deme._deme.DEMSolver) -> None Disable per-triangle P/V/PxV tracking and clear tracking state.
- DEMSolver.DoDynamics()¶
DoDynamics(self: deme._deme.DEMSolver, duration: typing.SupportsFloat | typing.SupportsIndex) -> None Advance by ``duration`` seconds without forcing the dynamic and kinematic workers to synchronize at the call boundary. This supports short calls and co-simulation; synchronize before immediately reading state.
- DEMSolver.DoDynamicsThenSync()¶
DoDynamicsThenSync(self: deme._deme.DEMSolver, duration: typing.SupportsFloat | typing.SupportsIndex) -> None Advance by ``duration`` seconds, then synchronize the dynamic and kinematic workers. Use this before immediately querying or modifying runtime state.
- DEMSolver.DoStepDynamics()¶
DoStepDynamics(self: deme._deme.DEMSolver) -> None Advance one current timestep without forcing a final dynamic/kinematic worker synchronization.
- DEMSolver.Duplicate()¶
Duplicate(*args, **kwargs) Overloaded function. 1. Duplicate(self: deme._deme.DEMSolver, arg0: deme::DEMMaterial) -> deme::DEMMaterial Duplicate a material that is loaded into the system. 2. Duplicate(self: deme._deme.DEMSolver, arg0: deme::DEMClumpTemplate) -> deme::DEMClumpTemplate Duplicate a clump template that is loaded into the system. 3. Duplicate(self: deme._deme.DEMSolver, arg0: deme::DEMClumpBatch) -> deme::DEMClumpBatch Duplicate a batch of clumps that is loaded into the system.
- DEMSolver.EnableContactBetweenFamilies()¶
EnableContactBetweenFamilies(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: typing.SupportsInt | typing.SupportsIndex) -> None Re-enable contact between 2 families after the system is initialized.
- DEMSolver.EnableContactWildcardOutput()¶
EnableContactWildcardOutput(self: deme._deme.DEMSolver, enable: bool = True) -> None Enable or disable contact wildcard output.
- DEMSolver.EnableMeshPatchColorOutput()¶
EnableMeshPatchColorOutput(self: deme._deme.DEMSolver, enable: bool = True) -> None Enable or disable patch color metadata in PLY mesh output.
- DEMSolver.EnableMeshWearModel()¶
EnableMeshWearModel(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, wear_rate: typing.SupportsFloat | typing.SupportsIndex, update_interval: typing.SupportsFloat | typing.SupportsIndex, start_time: typing.SupportsFloat | typing.SupportsIndex = 0.0, end_time: typing.SupportsFloat | typing.SupportsIndex = -1.0, normal_sign: typing.SupportsFloat | typing.SupportsIndex = -1.0) -> None Enable a mesh wear model driven by per-triangle P*V.
- DEMSolver.EnableOwnerWildcardOutput()¶
EnableOwnerWildcardOutput(self: deme._deme.DEMSolver, enable: bool = True) -> None Enable or disable owner wildcard output.
- DEMSolver.EnsureKernelErrMsgLineNum()¶
EnsureKernelErrMsgLineNum(self: deme._deme.DEMSolver, flag: bool = True) -> None If true, each jitification string substitution will do a one-liner to one-liner replacement, so that if the kernel compilation fails, the error meessage line number will reflex the actual spot where that happens (instead of some random number).
- DEMSolver.FlushMeshWearModels()¶
FlushMeshWearModels(self: deme._deme.DEMSolver) -> None Force-apply any pending wear deformation immediately.
- DEMSolver.GetAllOwnerWildcardValue()¶
GetAllOwnerWildcardValue(self: deme._deme.DEMSolver, arg0: str) -> list[float] Get the owner wildcard's values of all entities.
- DEMSolver.GetAvgSphContacts()¶
GetAvgSphContacts(self: deme._deme.DEMSolver) -> float Get the current number of contacts each sphere has
- DEMSolver.GetBinNum()¶
GetBinNum(self: deme._deme.DEMSolver) -> int Get the current number of bins (for contact detection). Must be called from synchronized stance.
- DEMSolver.GetBinSize()¶
GetBinSize(self: deme._deme.DEMSolver) -> float Get the current bin (for contact detection) size. Must be called from synchronized stance.
- DEMSolver.GetCachedMesh()¶
GetCachedMesh(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> deme::DEMMesh Get a handle for the mesh this tracker is tracking.
- DEMSolver.GetClumpContacts()¶
GetClumpContacts(*args, **kwargs) Overloaded function. 1. GetClumpContacts(self: deme._deme.DEMSolver) -> list[tuple[int, int]] Get all clump--clump contact ID pairs in the simulation system. Note all GetContact-like methods reports potential contacts (not necessarily confirmed contacts), meaning they are similar to what WriteContactFileIncludingPotentialPairs does, not what WriteContactFile does. 2. GetClumpContacts(self: deme._deme.DEMSolver, arg0: collections.abc.Set[typing.SupportsInt | typing.SupportsIndex]) -> list[tuple[int, int]] Get all clump--clump contact ID pairs in the simulation system. Note all GetContact-like methods reports potential contacts (not necessarily confirmed contacts), meaning they are similar to what WriteContactFileIncludingPotentialPairs does, not what WriteContactFile does. Use the argument to include only these families in the output. 3. GetClumpContacts(self: deme._deme.DEMSolver, arg0: collections.abc.Sequence[tuple[typing.SupportsInt | typing.SupportsIndex, typing.SupportsInt | typing.SupportsIndex]]) -> list[tuple[int, int]] Get all clump--clump contact ID pairs in the simulation system. Note all GetContact-like methods reports potential contacts (not necessarily confirmed contacts), meaning they are similar to what WriteContactFileIncludingPotentialPairs does, not what WriteContactFile does.
- DEMSolver.GetClumpPositionsHandover()¶
GetClumpPositionsHandover(self: deme._deme.DEMSolver) -> list[float3] Get all clump-owner center positions ordered by owner ID.
- DEMSolver.GetCombinedInstanceInfo()¶
GetCombinedInstanceInfo(self: deme._deme.DEMSolver, combined_instance_id: typing.SupportsInt | typing.SupportsIndex) -> tuple[bool, int, list[int], list[float3], list[float4]] Query combined-instance metadata; returns (ok, master_owner_id, member_owner_ids, member_rel_pos, member_rel_oriQ).
- DEMSolver.GetContactDetailedInfo()¶
GetContactDetailedInfo(self: deme._deme.DEMSolver, force_thres: typing.SupportsFloat | typing.SupportsIndex = -1.0) -> deme._deme.ContactInfoContainer Get all contact pairs' detailed information (actual content based on the setting with SetContactOutputContent; default are owner IDs, contact point location, contact force, and associated wildcard values) in the simulation system. Note all GetContact-like methods reports potential contacts (not necessarily confirmed contacts), meaning they are similar to what WriteContactFileIncludingPotentialPairs does, not what WriteContactFile does.
- DEMSolver.GetContactForceModel()¶
GetContactForceModel(self: deme._deme.DEMSolver) -> deme._deme.DEMForceModel Get the current force model
- DEMSolver.GetContacts()¶
GetContacts(*args, **kwargs) Overloaded function. 1. GetContacts(self: deme._deme.DEMSolver) -> list[tuple[int, int]] Get all contact ID pairs in the simulation system. Note all GetContact-like methods reports potential contacts (not necessarily confirmed contacts), meaning they are similar to what WriteContactFileIncludingPotentialPairs does, not what WriteContactFile does. 2. GetContacts(self: deme._deme.DEMSolver, arg0: collections.abc.Set[typing.SupportsInt | typing.SupportsIndex]) -> list[tuple[int, int]] Get all contact ID pairs in the simulation system. Note all GetContact-like methods reports potential contacts (not necessarily confirmed contacts), meaning they are similar to what WriteContactFileIncludingPotentialPairs does, not what WriteContactFile does. Use the argument to include only these families in the output. 3. GetContacts(self: deme._deme.DEMSolver, arg0: collections.abc.Sequence[tuple[typing.SupportsInt | typing.SupportsIndex, typing.SupportsInt | typing.SupportsIndex]]) -> list[tuple[int, int]] Get all contact ID pairs in the simulation system. Note all GetContact-like methods reports potential contacts (not necessarily confirmed contacts), meaning they are similar to what WriteContactFileIncludingPotentialPairs does, not what WriteContactFile does.
- DEMSolver.GetCudaDebugSync()¶
GetCudaDebugSync(self: deme._deme.DEMSolver) -> bool Return whether process-wide CUDA debug synchronization is enabled.
- DEMSolver.GetDeviceMemUsageDynamic()¶
GetDeviceMemUsageDynamic(self: deme._deme.DEMSolver) -> int Get the device memory usage (in bytes) on dT.
- DEMSolver.GetDeviceMemUsageKinematic()¶
GetDeviceMemUsageKinematic(self: deme._deme.DEMSolver) -> int Get the device memory usage (in bytes) on kT.
- DEMSolver.GetFamilyOwnerWildcardValue()¶
GetFamilyOwnerWildcardValue(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: str) -> list[float] Get the owner wildcard's values of all entities in family N.
- DEMSolver.GetGPUDeviceIDs()¶
GetGPUDeviceIDs(self: deme._deme.DEMSolver) -> list[int] Return ``[dynamic_worker_device, kinematic_worker_device]`` using process-visible logical CUDA IDs.
- DEMSolver.GetGPUTimersEnabled()¶
GetGPUTimersEnabled(self: deme._deme.DEMSolver) -> bool Return whether event-based GPU timing is enabled.
- DEMSolver.GetHostMemUsageDynamic()¶
GetHostMemUsageDynamic(self: deme._deme.DEMSolver) -> int Get the host memory usage (in bytes) on dT.
- DEMSolver.GetHostMemUsageKinematic()¶
GetHostMemUsageKinematic(self: deme._deme.DEMSolver) -> int Get the host memory usage (in bytes) on kT.
- DEMSolver.GetInitStatus()¶
GetInitStatus(self: deme._deme.DEMSolver) -> bool Return whether this simulation system is initialized.
- DEMSolver.GetJitifyOptions()¶
GetJitifyOptions(self: deme._deme.DEMSolver) -> list[str] Get current jitification options. It is needed by some of this simulation system's friend classes.
- DEMSolver.GetJitStringSubs()¶
GetJitStringSubs(self: deme._deme.DEMSolver) -> dict[str, str] Get the jitification string substitution laundary list. It is needed by some of this simulation system's friend classes.
- DEMSolver.GetMeshNodesGlobal()¶
GetMeshNodesGlobal(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> list[float3] Get the current locations of all the nodes in the mesh being tracked.
- DEMSolver.GetNumClumps()¶
GetNumClumps(self: deme._deme.DEMSolver) -> int Return the number of clumps that are currently in the simulation. Must be used after initialization.
- DEMSolver.GetNumCombinedInstances()¶
GetNumCombinedInstances(self: deme._deme.DEMSolver) -> int Return the number of combined instances currently cached.
- DEMSolver.GetNumContacts()¶
GetNumContacts(self: deme._deme.DEMSolver) -> int Get the number of kT-reported potential contact pairs.
- DEMSolver.GetNumOwners()¶
GetNumOwners(self: deme._deme.DEMSolver) -> int Return the total number of owners (clumps + meshes + analytical objects) that are currently in the simulation. Must be used after initialization.
- DEMSolver.GetOwnerAcc()¶
GetOwnerAcc(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, n: typing.SupportsInt | typing.SupportsIndex = 1) -> list[float3] Get the acceleration of n consecutive owners.
- DEMSolver.GetOwnerAngAcc()¶
GetOwnerAngAcc(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, n: typing.SupportsInt | typing.SupportsIndex = 1) -> list[float3] Get the angular acceleration of n consecutive owners.
- DEMSolver.GetOwnerAngVel()¶
GetOwnerAngVel(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, n: typing.SupportsInt | typing.SupportsIndex = 1) -> list[float3] Get angular velocity of n consecutive owners.
- DEMSolver.GetOwnerContactClumps()¶
GetOwnerContactClumps(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> list[int] Get the clumps that are in contact with this owner as a vector.
- DEMSolver.GetOwnerContactForces()¶
GetOwnerContactForces(*args, **kwargs) Overloaded function. 1. GetOwnerContactForces(self: deme._deme.DEMSolver, arg0: collections.abc.Sequence[typing.SupportsInt | typing.SupportsIndex], arg1: collections.abc.Sequence[float3], arg2: collections.abc.Sequence[float3]) -> int Get all contact forces that concern a list of owners. 2. GetOwnerContactForces(self: deme._deme.DEMSolver, ownerIDs: collections.abc.Sequence[typing.SupportsInt | typing.SupportsIndex], points: collections.abc.Sequence[float3], forces: collections.abc.Sequence[float3], torques: collections.abc.Sequence[float3], torque_in_local: bool = False) -> int Get all contact forces and torque that concern a list of owners.
- DEMSolver.GetOwnerFamily()¶
GetOwnerFamily(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, n: typing.SupportsInt | typing.SupportsIndex = 1) -> list[int] Get the family number of n consecutive owners.
- DEMSolver.GetOwnerMass()¶
GetOwnerMass(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, n: typing.SupportsInt | typing.SupportsIndex = 1) -> list[float] Get the mass of n consecutive owners.
- DEMSolver.GetOwnerMOI()¶
GetOwnerMOI(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, n: typing.SupportsInt | typing.SupportsIndex = 1) -> list[float3] Get the moment of inertia (in principal axis frame) of n consecutive owners.
- DEMSolver.GetOwnerOriQ()¶
GetOwnerOriQ(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, n: typing.SupportsInt | typing.SupportsIndex = 1) -> list[float4] Get quaternion of n consecutive owners.
- DEMSolver.GetOwnerPosition()¶
GetOwnerPosition(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, n: typing.SupportsInt | typing.SupportsIndex = 1) -> list[float3] Get position of n consecutive owners.
- DEMSolver.GetOwnerVelocity()¶
GetOwnerVelocity(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, n: typing.SupportsInt | typing.SupportsIndex = 1) -> list[float3] Get velocity of n consecutive owners.
- DEMSolver.GetOwnerWildcardValue()¶
GetOwnerWildcardValue(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, name: str, n: typing.SupportsInt | typing.SupportsIndex = 1) -> list[float] Get the owner wildcard's values of some owners.
- DEMSolver.GetSimTime()¶
GetSimTime(self: deme._deme.DEMSolver) -> float Get the simulation time passed since the start of simulation.
- DEMSolver.GetTimeStepSize()¶
GetTimeStepSize(self: deme._deme.DEMSolver) -> float Get the current time step size in simulation.
- DEMSolver.GetTrackedOwnerTrianglePV()¶
GetTrackedOwnerTrianglePV(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, reset_window: bool = True) -> tuple[bool, list[float], list[float], list[float]] Get frame-window averaged per-triangle P, V and P*V for one tracked owner.
- DEMSolver.GetUpdateFreq()¶
GetUpdateFreq(self: deme._deme.DEMSolver) -> float Get the current update frequency used by the solver.
- DEMSolver.GetWhetherForceCollectInKernel()¶
GetWhetherForceCollectInKernel(self: deme._deme.DEMSolver) -> bool Return whether the solver is currently reducing force in the force calculation kernel.
- DEMSolver.Initialize()¶
Initialize(self: deme._deme.DEMSolver, dry_run: bool = False) -> None Finalize cached setup data, allocate runtime state, and prepare JIT CUDA kernels. Call once after materials, geometry, particles, and solver options have been configured. ``dry_run=True`` performs initialization without starting normal dynamics.
- DEMSolver.InstructBoxDomainBoundingBC()¶
InstructBoxDomainBoundingBC(self: deme._deme.DEMSolver, arg0: str, arg1: deme::DEMMaterial) -> None Instruct if and how we should add boundaries to the simulation world upon initialization. Choose between `none', `all' (add 6 boundary planes) and `top_open' (add 5 boundary planes and leave the z-directon top open). Also specifies the material that should be assigned to those bounding boundaries.
- DEMSolver.InstructBoxDomainDimension()¶
InstructBoxDomainDimension(*args, **kwargs) Overloaded function. 1. InstructBoxDomainDimension(self: deme._deme.DEMSolver, x: typing.SupportsFloat | typing.SupportsIndex, y: typing.SupportsFloat | typing.SupportsIndex, z: typing.SupportsFloat | typing.SupportsIndex, dir_exact: str = 'none') -> None Set the Box Domain Dimension 2. InstructBoxDomainDimension(self: deme._deme.DEMSolver, x: tuple[typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex], y: tuple[typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex], z: tuple[typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex], dir_exact: str = 'none') -> None Set the span of the Box Domain
- DEMSolver.InstructNumOwners()¶
InstructNumOwners(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Explicitly instruct the sizes for the arrays at initialization time. This is useful when the number of owners tends to change (especially gradually increase) frequently in the simulation.
- DEMSolver.LoadClumpType()¶
LoadClumpType(*args, **kwargs) Overloaded function. 1. LoadClumpType(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex, arg1: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], arg2: str, arg3: deme::DEMMaterial) -> deme::DEMClumpTemplate Load a clump type into the API-level cache 2. LoadClumpType(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex, arg1: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], arg2: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], arg3: collections.abc.Sequence[collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]], arg4: deme::DEMMaterial) -> deme::DEMClumpTemplate Load a clump type into the API-level cache 3. LoadClumpType(self: deme._deme.DEMSolver, arg0: deme::DEMClumpTemplate) -> deme::DEMClumpTemplate Load a clump type into the API-level cache 4. LoadClumpType(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex, arg1: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], arg2: str, arg3: collections.abc.Sequence[deme::DEMMaterial]) -> deme::DEMClumpTemplate Load a clump type into the API-level cache 5. LoadClumpType(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex, arg1: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], arg2: str, arg3: deme::DEMMaterial) -> deme::DEMClumpTemplate Load a clump type into the API-level cache
- DEMSolver.LoadCombinedClumpType()¶
LoadCombinedClumpType(self: deme._deme.DEMSolver, component_templates: collections.abc.Sequence[deme::DEMClumpTemplate], component_rel_pos: collections.abc.Sequence[float3], component_rel_oriQ: collections.abc.Sequence[float4] = [], master_component: typing.SupportsInt | typing.SupportsIndex = 0) -> deme::DEMCombinedTemplate Load a rigid combined-clump template with fixed member-relative transforms.
- DEMSolver.LoadCombinedMeshType()¶
LoadCombinedMeshType(self: deme._deme.DEMSolver, component_templates: collections.abc.Sequence[deme::DEMMesh], component_rel_pos: collections.abc.Sequence[float3], component_rel_oriQ: collections.abc.Sequence[float4] = [], master_component: typing.SupportsInt | typing.SupportsIndex = 0) -> deme::DEMCombinedTemplate Load a rigid combined-mesh template with fixed member-relative transforms.
- DEMSolver.LoadMaterial()¶
LoadMaterial(*args, **kwargs) Overloaded function. 1. LoadMaterial(self: deme._deme.DEMSolver, arg0: collections.abc.Mapping[str, typing.SupportsFloat | typing.SupportsIndex]) -> deme::DEMMaterial Load materials properties (Young's modulus, Poisson's ratio...) into the system. 2. LoadMaterial(self: deme._deme.DEMSolver, arg0: deme::DEMMaterial) -> deme::DEMMaterial Load materials properties into the system.
- DEMSolver.LoadMeshType()¶
LoadMeshType(*args, **kwargs) Overloaded function. 1. LoadMeshType(self: deme._deme.DEMSolver, filename: str, mat: deme::DEMMaterial, load_normals: bool = True, load_uv: bool = False) -> deme::DEMMesh Load a mesh template into cache so it can be instantiated repeatedly. 2. LoadMeshType(self: deme._deme.DEMSolver, filename: str, load_normals: bool = True, load_uv: bool = False) -> deme::DEMMesh Load a mesh template into cache (without explicitly assigning material here). 3. LoadMeshType(self: deme._deme.DEMSolver, mesh: deme::DEMMesh) -> deme::DEMMesh Load a user-constructed mesh object as a reusable template.
- DEMSolver.LoadSphereType()¶
LoadSphereType(*args, **kwargs) Overloaded function. 1. LoadSphereType(self: deme._deme.DEMSolver, mass: typing.SupportsFloat | typing.SupportsIndex, radius: typing.SupportsFloat | typing.SupportsIndex, material: deme::DEMMaterial) -> deme::DEMClumpTemplate Load a reusable one-sphere clump template, deriving its spherical moment of inertia. 2. LoadSphereType(self: deme._deme.DEMSolver, mass: typing.SupportsFloat | typing.SupportsIndex, moi: typing.SupportsFloat | typing.SupportsIndex, radius: typing.SupportsFloat | typing.SupportsIndex, material: deme::DEMMaterial) -> deme::DEMClumpTemplate Load a reusable one-sphere clump template with an explicitly supplied scalar moment of inertia.
- DEMSolver.MarkFamilyPersistentContact()¶
MarkFamilyPersistentContact(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: typing.SupportsInt | typing.SupportsIndex) -> None Make it so that if for any currently-existing contact, if its two contact geometries are in family N1 and N2 respectively, this contact will never be removed.
- DEMSolver.MarkFamilyPersistentContactBoth()¶
MarkFamilyPersistentContactBoth(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Make it so that for any currently-existing contact, if both of its contact geometries are in family N, then this contact will never be removed.
- DEMSolver.MarkFamilyPersistentContactEither()¶
MarkFamilyPersistentContactEither(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Make it so that for any currently-existing contact, if one of its contact geometries is in family N, then this contact will never be removed.
- DEMSolver.MarkPersistentContact()¶
MarkPersistentContact(self: deme._deme.DEMSolver) -> None Make it so that all currently-existing contacts in this simulation will never be removed.
- DEMSolver.PrintKinematicScratchSpaceUsage()¶
PrintKinematicScratchSpaceUsage(self: deme._deme.DEMSolver) -> None Print kT's scratch space usage. This is a debug method.
- DEMSolver.PurgeFamily()¶
PurgeFamily(self: deme._deme.DEMSolver, family_num: typing.SupportsInt | typing.SupportsIndex) -> None Remove all entities in a family from runtime arrays to reclaim memory.
- DEMSolver.ReadContactForceModel()¶
ReadContactForceModel(self: deme._deme.DEMSolver, arg0: str) -> deme._deme.DEMForceModel Read user custom contact force model from a file (which by default should reside in kernel/DEMUserScripts). Returns a pointer to the force model in use.
- DEMSolver.ReleaseFlattenedArrays()¶
ReleaseFlattenedArrays(self: deme._deme.DEMSolver) -> None Release setup-time flattened arrays used for preprocessing and worker transfer.
- DEMSolver.RemoveFamilyPersistentContact()¶
RemoveFamilyPersistentContact(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: typing.SupportsInt | typing.SupportsIndex) -> None Cancel contact persistence qualification. Work like the inverse of MarkFamilyPersistentContact.
- DEMSolver.RemoveFamilyPersistentContactBoth()¶
RemoveFamilyPersistentContactBoth(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Cancel contact persistence qualification. Work like the inverse of MarkFamilyPersistentContactBoth.
- DEMSolver.RemoveFamilyPersistentContactEither()¶
RemoveFamilyPersistentContactEither(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Cancel contact persistence qualification. Work like the inverse of MarkFamilyPersistentContactEither.
- DEMSolver.RemoveKernelInclude()¶
RemoveKernelInclude(self: deme._deme.DEMSolver) -> None Remove all extra libraries that the kernels `include' in their headers.
- DEMSolver.RemovePersistentContact()¶
RemovePersistentContact(self: deme._deme.DEMSolver) -> None Cancel contact persistence qualification. Work like the inverse of MarkPersistentContact.
- DEMSolver.RequestContactUpdate()¶
RequestContactUpdate(self: deme._deme.DEMSolver) -> None Request an immediate contact detection update.
- DEMSolver.SetAdaptiveBinSizeAcc()¶
SetAdaptiveBinSizeAcc(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set how fast kT changes the direction of bin size adjustmemt when there's a more beneficial direction
- DEMSolver.SetAdaptiveBinSizeDelaySteps()¶
SetAdaptiveBinSizeDelaySteps(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Adjust how frequent kT updates the bin size
- DEMSolver.SetAdaptiveBinSizeLowerProactivity()¶
SetAdaptiveBinSizeLowerProactivity(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set how proactive the solver is in avoiding the bin being too small (leading to too many bins in domain).
- DEMSolver.SetAdaptiveBinSizeMaxRate()¶
SetAdaptiveBinSizeMaxRate(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set the max rate that the bin size can change in one adjustment
- DEMSolver.SetAdaptiveBinSizeUpperProactivity()¶
SetAdaptiveBinSizeUpperProactivity(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set how proactive the solver is in avoiding the bin being too big (leading to too many geometries in a bin)
- DEMSolver.SetAdaptiveTimeStepType()¶
SetAdaptiveTimeStepType(self: deme._deme.DEMSolver, arg0: str) -> None Set the strategy for auto-adapting time step size. Currently, hertz_const computes one fixed setup-time timestep; max_vel and int_diff are accepted but not implemented.
- DEMSolver.SetAllowIntraCombinedOwnerContacts()¶
SetAllowIntraCombinedOwnerContacts(self: deme._deme.DEMSolver, allow: bool = True) -> None Allow or suppress contacts among owners belonging to the same combined owner group.
- DEMSolver.SetCDMaxUpdateFreq()¶
SetCDMaxUpdateFreq(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Set the upper bound of kT update frequency (when it is adjusted automatically).
- DEMSolver.SetCDNumStepsMaxDriftAheadOfAvg()¶
SetCDNumStepsMaxDriftAheadOfAvg(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set the number of steps dT configures its max drift more than average drift steps.
- DEMSolver.SetCDNumStepsMaxDriftHistorySize()¶
SetCDNumStepsMaxDriftHistorySize(self: deme._deme.DEMSolver, n: typing.SupportsInt | typing.SupportsIndex) -> None Set how many past kinematic-worker updates calibrate the maximum future drift limit. The default is recommended for normal use.
- DEMSolver.SetCDNumStepsMaxDriftMultipleOfAvg()¶
SetCDNumStepsMaxDriftMultipleOfAvg(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set the multiplier which dT configures its max drift to be w.r.t. the average drift steps.
- DEMSolver.SetCDUpdateFreq()¶
SetCDUpdateFreq(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Set the number of dT steps before it waits for a contact-pair info update from kT.
- DEMSolver.SetCollectAccRightAfterForceCalc()¶
SetCollectAccRightAfterForceCalc(self: deme._deme.DEMSolver, flag: bool = True) -> None Reduce contact forces to accelerations right after calculating them, in the same kernel. This may give some performance boost if you have only polydisperse spheres, no clumps.
- DEMSolver.SetContactOutputContent()¶
SetContactOutputContent(self: deme._deme.DEMSolver, arg0: collections.abc.Sequence[str]) -> None Specify the information that needs to go into the contact pair output files.
- DEMSolver.SetContactOutputFormat()¶
SetContactOutputFormat(self: deme._deme.DEMSolver, arg0: str) -> None Specify the file format of contact pairs.
- DEMSolver.SetContactWildcards()¶
SetContactWildcards(self: deme._deme.DEMSolver, arg0: collections.abc.Set[str]) -> None Set the names for the extra quantities that will be associated with each contact pair.
- DEMSolver.SetContactWildcardValue()¶
SetContactWildcardValue(self: deme._deme.DEMSolver, arg0: str, arg1: typing.SupportsFloat | typing.SupportsIndex) -> None Change the value of contact wildcards to val. Apply to all simulation bodies that are present.
- DEMSolver.SetCudaDebugSync()¶
SetCudaDebugSync(self: deme._deme.DEMSolver, enable: bool = True) -> None Set the process-wide switch that synchronizes after each CUDA operation that enqueues stream work. Disable for normal asynchronous performance.
- DEMSolver.SetErrorOutAngularVelocity()¶
SetErrorOutAngularVelocity(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set the angular velocity which when exceeded, the solver errors out. A huge number can be used to discourage this error type. Defaulted to 1e4.
- DEMSolver.SetErrorOutAvgContacts()¶
SetErrorOutAvgContacts(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set the average number of contacts a sphere has, before the solver errors out. A huge number can be used to discourage this error type. Defaulted to 100
- DEMSolver.SetErrorOutVelocity()¶
SetErrorOutVelocity(*args, **kwargs) Overloaded function. 1. SetErrorOutVelocity(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set the velocity which when exceeded, the solver errors out. A huge number can be used to discourage this error type. Defaulted to 1e3. 2. SetErrorOutVelocity(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set the velocity which when exceeded, the solver errors out. A huge number can be used to discourage this error type. Defaulted to 5e4.
- DEMSolver.SetExpandFactor()¶
SetExpandFactor(self: deme._deme.DEMSolver, beta: typing.SupportsFloat | typing.SupportsIndex, fix: bool = True) -> None (Explicitly) set the amount by which the radii of the spheres (and the thickness of the boundaries) are expanded for the purpose of contact detection (safe, and creates false positives). If fix is set to true, then this expand factor does not change even if the user uses variable time step size.
- DEMSolver.SetExpandSafetyAdder()¶
SetExpandSafetyAdder(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set a `base' velocity, which we will always add to our estimated maximum system velocity, when deriving the thickness of the contact `safety' margin
- DEMSolver.SetExpandSafetyMultiplier()¶
SetExpandSafetyMultiplier(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Assign a multiplier to our estimated maximum system velocity, when deriving the thinckness of the contact `safety' margin.
- DEMSolver.SetExpandSafetyType()¶
SetExpandSafetyType(self: deme._deme.DEMSolver, arg0: str) -> None A string. If 'auto': the solver automatically derives.
- DEMSolver.SetFamilyClumpMaterial()¶
SetFamilyClumpMaterial(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: deme::DEMMaterial) -> None Set all clumps in this family to have this material.
- DEMSolver.SetFamilyContactWildcardValue()¶
SetFamilyContactWildcardValue(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: typing.SupportsInt | typing.SupportsIndex, arg2: str, arg3: typing.SupportsFloat | typing.SupportsIndex) -> None Change the value of contact wildcards to val if one of the contact geometry is in family N1, and the other is in N2.
- DEMSolver.SetFamilyContactWildcardValueBoth()¶
SetFamilyContactWildcardValueBoth(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: str, arg2: typing.SupportsFloat | typing.SupportsIndex) -> None Change the value of contact wildcards to val if both of the contact geometries are in family N.
- DEMSolver.SetFamilyContactWildcardValueEither()¶
SetFamilyContactWildcardValueEither(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: str, arg2: typing.SupportsFloat | typing.SupportsIndex) -> None Change the value of contact wildcards to val if either of the contact geometries is in family N.
- DEMSolver.SetFamilyExtraMargin()¶
SetFamilyExtraMargin(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: typing.SupportsFloat | typing.SupportsIndex) -> None Add an extra contact margin to entities in a family so they are registered as potential contact pairs earlier.
- DEMSolver.SetFamilyFixed()¶
SetFamilyFixed(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Mark all entities in this family to be fixed.
- DEMSolver.SetFamilyMeshMaterial()¶
SetFamilyMeshMaterial(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: deme::DEMMaterial) -> None Set all meshes in this family to have this material.
- DEMSolver.SetFamilyOwnerWildcardValue()¶
SetFamilyOwnerWildcardValue(*args, **kwargs) Overloaded function. 1. SetFamilyOwnerWildcardValue(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: str, arg2: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Modify the owner wildcard's values of all entities in family N. 2. SetFamilyOwnerWildcardValue(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: str, arg2: typing.SupportsFloat | typing.SupportsIndex) -> None Modify the owner wildcard's values of all entities in family N.
- DEMSolver.SetFamilyPrescribedAngVel()¶
SetFamilyPrescribedAngVel(*args, **kwargs) Overloaded function. 1. SetFamilyPrescribedAngVel(self: deme._deme.DEMSolver, ID: typing.SupportsInt | typing.SupportsIndex, velX: str, velY: str, velZ: str, dictate: bool = True, pre: str = 'none') -> None Set the prescribed angular velocity to all entities in a family. If dictate is set to true, then this family will not be influenced by the force exerted from other simulation entites (both linear and rotational motions). If false, only specified components (that is, not specified with 'none') will not be influenced by the force exerted from other simulation entites. 2. SetFamilyPrescribedAngVel(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the angular velocities of all entites in this family always keep `as is', and not influenced by the force exerted from other simulation entites.
- DEMSolver.SetFamilyPrescribedAngVelX()¶
SetFamilyPrescribedAngVelX(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the X component of the angular velocities of all entites in this family always keep `as is', and not influenced by the force exerted from other simulation entites.
- DEMSolver.SetFamilyPrescribedAngVelY()¶
SetFamilyPrescribedAngVelY(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the X component of the angular velocities of all entites in this family always keep `as is', and not influenced by the force exerted from other simulation entites.
- DEMSolver.SetFamilyPrescribedAngVelZ()¶
SetFamilyPrescribedAngVelZ(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the X component of the angular velocities of all entites in this family always keep `as is', and not influenced by the force exerted from other simulation entites.
- DEMSolver.SetFamilyPrescribedLinVel()¶
SetFamilyPrescribedLinVel(*args, **kwargs) Overloaded function. 1. SetFamilyPrescribedLinVel(self: deme._deme.DEMSolver, ID: typing.SupportsInt | typing.SupportsIndex, velX: str, velY: str, velZ: str, dictate: bool = True, pre: str = 'none') -> None Set the prescribed linear velocity to all entities in a family. If dictate is set to true, then this family will not be influenced by the force exerted from other simulation entites (both linear and rotational motions). If false, only specified components (that is, not specified with 'none') will not be influenced by the force exerted from other simulation entites. 2. SetFamilyPrescribedLinVel(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the linear velocities of all entites in this family always keep `as is', and not influenced by the force exerted from other simulation entites.
- DEMSolver.SetFamilyPrescribedLinVelX()¶
SetFamilyPrescribedLinVelX(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the X component of the linear velocities of all entites in this family always keep `as is', and not influenced by the force exerted from other simulation entites.
- DEMSolver.SetFamilyPrescribedLinVelY()¶
SetFamilyPrescribedLinVelY(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the Y component of the linear velocities of all entites in this family always keep `as is', and not influenced by the force exerted from other simulation entites.
- DEMSolver.SetFamilyPrescribedLinVelZ()¶
SetFamilyPrescribedLinVelZ(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the Z component of the linear velocities of all entites in this family always keep `as is', and not influenced by the force exerted from other simulation entites.
- DEMSolver.SetFamilyPrescribedPosition()¶
SetFamilyPrescribedPosition(*args, **kwargs) Overloaded function. 1. SetFamilyPrescribedPosition(self: deme._deme.DEMSolver, ID: typing.SupportsInt | typing.SupportsIndex, X: str, Y: str, Z: str, dictate: bool = True, pre: str = 'none') -> None Keep the positions of all entites in this family to remain exactly the user-specified values. 2. SetFamilyPrescribedPosition(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Keep the positions of all entites in this family to remain as is.
- DEMSolver.SetFamilyPrescribedPositionX()¶
SetFamilyPrescribedPositionX(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the X component of the linear positions of all entites in this family always keep `as is'.
- DEMSolver.SetFamilyPrescribedPositionY()¶
SetFamilyPrescribedPositionY(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the Y component of the linear positions of all entites in this family always keep `as is'.
- DEMSolver.SetFamilyPrescribedPositionZ()¶
SetFamilyPrescribedPositionZ(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the Z component of the linear positions of all entites in this family always keep `as is'.
- DEMSolver.SetFamilyPrescribedQuaternion()¶
SetFamilyPrescribedQuaternion(*args, **kwargs) Overloaded function. 1. SetFamilyPrescribedQuaternion(self: deme._deme.DEMSolver, ID: typing.SupportsInt | typing.SupportsIndex, q_formula: str, dictate: bool = True) -> None Keep the orientation quaternions of all entites in this family to remain exactly the user-specified values. 2. SetFamilyPrescribedQuaternion(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Let the orientation quaternions of all entites in this family always keep `as is'.
- DEMSolver.SetForceCalcThreadsPerBlock()¶
SetForceCalcThreadsPerBlock(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Set the number of threads per block in force calculation (default 256).
- DEMSolver.SetGPUTimersEnabled()¶
SetGPUTimersEnabled(self: deme._deme.DEMSolver, enabled: bool) -> None Enable or disable event-based GPU timing.
- DEMSolver.SetGravitationalAcceleration()¶
SetGravitationalAcceleration(self: deme._deme.DEMSolver, acc: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Set the global gravitational acceleration as ``[x, y, z]`` in length/time^2 units.
- DEMSolver.SetInitBinNumTarget()¶
SetInitBinNumTarget(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Set the target number of bins (for contact detection) at the start of the simulation upon initialization.
- DEMSolver.SetInitBinSize()¶
SetInitBinSize(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Explicitly instruct the bin size (for contact detection) that the solver should use.
- DEMSolver.SetInitBinSizeAsMultipleOfSmallestSphere()¶
SetInitBinSizeAsMultipleOfSmallestSphere(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Explicitly instruct the bin size (for contact detection) that the solver should use, as a multiple of the radius of the smallest sphere in simulation.
- DEMSolver.SetInitTimeStep()¶
SetInitTimeStep(self: deme._deme.DEMSolver, ts: typing.SupportsFloat | typing.SupportsIndex) -> None Set the initial timestep in seconds before ``Initialize``. A constant-step simulation uses it throughout; an adaptive strategy may update it later.
- DEMSolver.SetIntegrator()¶
SetIntegrator(*args, **kwargs) Overloaded function. 1. SetIntegrator(self: deme._deme.DEMSolver, arg0: str) -> None Set the time integrator for this simulator. 2. SetIntegrator(self: deme._deme.DEMSolver, arg0: deme::TIME_INTEGRATOR) -> None Set the time integrator for this simulator.
- DEMSolver.SetJitifyClumpTemplates()¶
SetJitifyClumpTemplates(self: deme._deme.DEMSolver, use: bool = True) -> None Instruct the solver to rearrange and consolidate clump templates information, then jitify it into GPU kernels (if set to true), rather than using flattened sphere component configuration arrays whose entries are associated with individual spheres.
- DEMSolver.SetJitifyMassProperties()¶
SetJitifyMassProperties(self: deme._deme.DEMSolver, use: bool = True) -> None Instruct the solver to rearrange and consolidate mass property information (for all owner types), then jitify it into GPU kernels (if set to true), rather than using flattened mass property arrays whose entries are associated with individual owners.
- DEMSolver.SetJitifyOptions()¶
SetJitifyOptions(self: deme._deme.DEMSolver, arg0: collections.abc.Sequence[str]) -> None Set the jitification options. It is only needed by advanced users.
- DEMSolver.SetKernelInclude()¶
SetKernelInclude(self: deme._deme.DEMSolver, arg0: str) -> None Set the kernels' headers' extra include lines. Useful for customization.
- DEMSolver.SetMaterialPropertyPair()¶
SetMaterialPropertyPair(self: deme._deme.DEMSolver, arg0: str, arg1: deme::DEMMaterial, arg2: deme::DEMMaterial, arg3: typing.SupportsFloat | typing.SupportsIndex) -> None Set the value for a material property that by nature involves a pair of a materials (e.g. friction coefficient).
- DEMSolver.SetMaxSphereInBin()¶
SetMaxSphereInBin(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Used to force the solver to error out when there are too many spheres in a bin. A huge number can be used to discourage this error type
- DEMSolver.SetMaxTriangleInBin()¶
SetMaxTriangleInBin(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex) -> None Used to force the solver to error out when there are too many spheres in a bin. A huge number can be used to discourage this error type
- DEMSolver.SetMaxTriTriPenetration()¶
SetMaxTriTriPenetration(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set the maximum allowed triangle-triangle penetration used as the margin added in kT contact detection. This value caps the penetration margin added to prevent excessively large values.
- DEMSolver.SetMaxVelocity()¶
SetMaxVelocity(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set the maximum expected particle velocity. The solver will not use a velocity larger than this for determining the margin thickness, and velocity larger than this will be considered a system anomaly.
- DEMSolver.SetMeshOutputFormat()¶
SetMeshOutputFormat(self: deme._deme.DEMSolver, arg0: str) -> None Specify the output file format of meshes.
- DEMSolver.SetMeshParticlesLowPoly()¶
SetMeshParticlesLowPoly(self: deme._deme.DEMSolver, use: bool = True) -> None Declare that all meshed particles have a low polygon count (e.g. box, tetrahedron). When enabled, the per-triangle maxTriTriPenetration array is neither computed, transferred to kT, nor used to inflate contact-detection margins, saving compute time. Toggle this on only when you are confident that no triangle from one mesh will ever be completely submerged inside another mesh.
- DEMSolver.SetMeshUniversalContact()¶
SetMeshUniversalContact(self: deme._deme.DEMSolver, use: bool = True) -> None Set whether mesh-mesh contacts should be universally detected. Set to false to speedup simulation if meshes are not expected to have contacts. Default is false.
- DEMSolver.SetNoForceRecord()¶
SetNoForceRecord(self: deme._deme.DEMSolver, flag: bool = True) -> None Instruct the solver that there is no need to record the contact force (and contact point location etc.) in an array.
- DEMSolver.SetOutputContent()¶
SetOutputContent(self: deme._deme.DEMSolver, arg0: collections.abc.Sequence[str]) -> None Specify the information that needs to go into the clump or sphere output files.
- DEMSolver.SetOutputFormat()¶
SetOutputFormat(self: deme._deme.DEMSolver, arg0: str) -> None Choose sphere and clump output file format.
- DEMSolver.SetOwnerAngVel()¶
SetOwnerAngVel(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: collections.abc.Sequence[float3]) -> None Set angular velocity of consecutive owners starting from ownerID, based on input angular velocity vector. N (the size of the input vector) elements will be modified.
- DEMSolver.SetOwnerFamily()¶
SetOwnerFamily(self: deme._deme.DEMSolver, ownerID: typing.SupportsInt | typing.SupportsIndex, fam: typing.SupportsInt | typing.SupportsIndex, n: typing.SupportsInt | typing.SupportsIndex = 1) -> None Set the family number of consecutive owners.
- DEMSolver.SetOwnerOriQ()¶
SetOwnerOriQ(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: collections.abc.Sequence[float4]) -> None Set quaternion of consecutive owners starting from ownerID, based on input quaternion vector. N (the size of the input vector) elements will be modified.
- DEMSolver.SetOwnerPosition()¶
SetOwnerPosition(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: collections.abc.Sequence[float3]) -> None Set position of consecutive owners starting from ownerID, based on input position vector. N (the size of the input vector) elements will be modified.
- DEMSolver.SetOwnerVelocity()¶
SetOwnerVelocity(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: collections.abc.Sequence[float3]) -> None Set velocity of consecutive owners starting from ownerID, based on input velocity vector. N (the size of the input vector) elements will be modified.
- DEMSolver.SetOwnerWildcards()¶
SetOwnerWildcards(self: deme._deme.DEMSolver, arg0: collections.abc.Set[str]) -> None Set the names for the extra quantities that will be associated with each owner.
- DEMSolver.SetOwnerWildcardValue()¶
SetOwnerWildcardValue(*args, **kwargs) Overloaded function. 1. SetOwnerWildcardValue(self: deme._deme.DEMSolver, ownerIDs: typing.SupportsInt | typing.SupportsIndex, name: str, vals: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Set the wildcard values of some owners using a list. 2. SetOwnerWildcardValue(self: deme._deme.DEMSolver, ownerIDs: typing.SupportsInt | typing.SupportsIndex, name: str, val: typing.SupportsFloat | typing.SupportsIndex, n: typing.SupportsInt | typing.SupportsIndex = 1) -> None Set the wildcard values of some owners using a list.
- DEMSolver.SetPersistentContact()¶
SetPersistentContact(self: deme._deme.DEMSolver, use: bool = True) -> None Set whether the solver should expect the user to mark certain contacts as persistent across kT updates. Set this to true if you later will call MarkPersistentContact series of methods.
- DEMSolver.SetSimplePatchCombination()¶
SetSimplePatchCombination(self: deme._deme.DEMSolver, use: bool = True) -> None Use simple patch-ID based triangle contact combination. Disable to opt into connected-component flooding.
- DEMSolver.SetSimTime()¶
SetSimTime(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Get the simulation time passed since the start of simulation.
- DEMSolver.SetSortContactPairs()¶
SetSortContactPairs(self: deme._deme.DEMSolver, arg0: bool) -> None Instruct the solver if contact pair arrays should be sorted (based on the types of contacts) before usage.
- DEMSolver.SetStablePatchIslandIDs()¶
SetStablePatchIslandIDs(self: deme._deme.DEMSolver, use: bool = True) -> None Stabilize flooded patch-island IDs across contact-detection steps.
- DEMSolver.SetTrianglePVTrackingOwners()¶
SetTrianglePVTrackingOwners(self: deme._deme.DEMSolver, arg0: collections.abc.Sequence[typing.SupportsInt | typing.SupportsIndex]) -> None Enable per-triangle P/V/PxV tracking for the specified mesh owners.
- DEMSolver.SetTriNodeRelPos()¶
SetTriNodeRelPos(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: typing.SupportsInt | typing.SupportsIndex, arg2: collections.abc.Sequence[float3]) -> None Rewrite the relative positions of the flattened triangle soup.
- DEMSolver.SetTriTriContactRejectionRatio()¶
SetTriTriContactRejectionRatio(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Set the ratio threshold for rejecting suspicious tri-tri contacts. A contact is rejected when the penetration depth exceeds this fraction of the contact-point-to-mesh-center distance for either mesh involved. A negative value disables the guard entirely.
- DEMSolver.SetTriTriPenetration()¶
SetTriTriPenetration(self: deme._deme.DEMSolver, arg0: typing.SupportsFloat | typing.SupportsIndex) -> None Manually set the current triangle-triangle penetration value in dT. This allows the user to directly control the maxTriTriPenetration value which will ONLY be used in the NEXT contact detection run in kT.
- DEMSolver.SetUseAngularVelocityMargin()¶
SetUseAngularVelocityMargin(self: deme._deme.DEMSolver, arg0: bool) -> None Control whether angular velocity contributes to the contact detection margin.
- DEMSolver.SetVerbosity()¶
SetVerbosity(self: deme._deme.DEMSolver, arg0: str) -> None Set the verbosity level of the solver. Select from 'QUIET', 'ERROR', 'WARNING', 'INFO', 'METRIC' or 'DEBUG'. Recommend 'INFO'.
- DEMSolver.ShowAnomalies()¶
ShowAnomalies(self: deme._deme.DEMSolver) -> None Show potential anomalies that may have been there in the simulation, then clear the anomaly log.
- DEMSolver.ShowMemStats()¶
ShowMemStats(self: deme._deme.DEMSolver) -> None Print the current memory usage in pretty format.
- DEMSolver.ShowThreadCollaborationStats()¶
ShowThreadCollaborationStats(self: deme._deme.DEMSolver) -> None Show the collaboration stats between dT and kT. This is more useful for tweaking the number of time steps that dT should be allowed to be in advance of kT.
- DEMSolver.ShowTimingStats()¶
ShowTimingStats(self: deme._deme.DEMSolver) -> None Show the wall time and percentages of wall time spend on various solver tasks.
- DEMSolver.SyncMemoryTransfer()¶
SyncMemoryTransfer(self: deme._deme.DEMSolver) -> None If the user used async-ed version of a tracker's get/set methods (to get a speed boost in many piecemeal accesses of a long array), this method should be called to mark the end of to-host transactions.
- DEMSolver.Track()¶
Track(*args, **kwargs) Overloaded function. 1. Track(self: deme._deme.DEMSolver, arg0: deme._deme.DEMInitializer) -> deme._deme.Tracker Create a DEMTracker to allow direct control/modification/query to this external object/batch of clumps/triangle mesh object. 2. Track(self: deme._deme.DEMSolver, combined_inst: deme::DEMCombinedInstances) -> deme._deme.Tracker Create a single tracker that tracks all member owners in a combined-instances batch.
- DEMSolver.UpdateClumps()¶
UpdateClumps(self: deme._deme.DEMSolver) -> None Transfer newly loaded clumps to the GPU-side in mid-simulation.
- DEMSolver.UpdateSimParams()¶
UpdateSimParams(self: deme._deme.DEMSolver) -> None Transfer the cached sim params to the workers. Used for sim environment modification after system initialization.
- DEMSolver.UpdateStepSize()¶
UpdateStepSize(self: deme._deme.DEMSolver, ts: typing.SupportsFloat | typing.SupportsIndex = -1.0) -> None Update the time step size. Used after system initialization.
- DEMSolver.UpdateTriNodeRelPos()¶
UpdateTriNodeRelPos(self: deme._deme.DEMSolver, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: typing.SupportsInt | typing.SupportsIndex, arg2: collections.abc.Sequence[float3]) -> None Update the relative positions of the flattened triangle soup.
- DEMSolver.UseAdaptiveBinSize()¶
UseAdaptiveBinSize(self: deme._deme.DEMSolver, use: bool = True) -> None Enable or disable the use of adaptive bin size (by default it is on)
- DEMSolver.UseAdaptiveUpdateFreq()¶
UseAdaptiveUpdateFreq(self: deme._deme.DEMSolver, use: bool = True) -> None Enable or disable the use of adaptive max update step count (by default it is on)
- DEMSolver.UseFrictionalHertzianModel()¶
UseFrictionalHertzianModel(self: deme._deme.DEMSolver) -> deme._deme.DEMForceModel Instruct the solver to use frictonal (history-based) Hertzian contact force model.
- DEMSolver.UseFrictionlessHertzianModel()¶
UseFrictionlessHertzianModel(self: deme._deme.DEMSolver) -> deme._deme.DEMForceModel Instruct the solver to use frictonless Hertzian contact force model
- DEMSolver.UseHertzConstTimeStep()¶
UseHertzConstTimeStep(self: deme._deme.DEMSolver) -> None Use the setup-time Hertzian constant timestep estimate.
- DEMSolver.WaitForPendingOutput()¶
WaitForPendingOutput(self: deme._deme.DEMSolver) -> None Wait for any in-flight async output to finish.
- DEMSolver.WriteClumpFile()¶
WriteClumpFile(self: deme._deme.DEMSolver, outfilename: str, accuracy: typing.SupportsInt | typing.SupportsIndex = 10) -> None Write the current status of clumps to a file.
- DEMSolver.WriteContactFile()¶
WriteContactFile(self: deme._deme.DEMSolver, outfilename: str, force_thres: typing.SupportsFloat | typing.SupportsIndex = 1e-30) -> None Write all contact pairs to a file. Forces smaller than threshold will not be outputted.
- DEMSolver.WriteContactFileIncludingPotentialPairs()¶
WriteContactFileIncludingPotentialPairs(self: deme._deme.DEMSolver, outfilename: str) -> None Write all contact pairs kT-supplied to a file, thus including the potential ones (those are not yet in contact, or recently used to be in contact).
- DEMSolver.WriteMeshFile()¶
WriteMeshFile(self: deme._deme.DEMSolver, arg0: str) -> None Write the current status of all meshes to a file.
- DEMSolver.WriteSphereFile()¶
WriteSphereFile(self: deme._deme.DEMSolver, arg0: str) -> None Writes the current status of clumps (but decomposed as spheres) file.
Tracker¶
- class Tracker¶
Access and modify owners associated with a tracked batch or object. Create trackers with ``DEMSolver.Track`` during setup. Most state queries and updates require the solver to be initialized and synchronized. ``offset`` selects an owner within the tracked collection, starting at zero. Keep the parent solver alive while using a tracker.
- Tracker.__init__()¶
__init__(self: deme._deme.Tracker, solver: deme::DEMSolver) -> None Create a tracker associated with ``solver``. Prefer ``DEMSolver.Track`` so the tracked owner range is configured correctly.
- Tracker.AddAcc()¶
AddAcc(*args, **kwargs) Overloaded function. 1. AddAcc(self: deme._deme.Tracker, acc: float3, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> None Add an extra acc to the tracked body, for the next time step. Note if the user intends to add a persistent external force, then using family prescription is the better method. 2. AddAcc(self: deme._deme.Tracker, acc: collections.abc.Sequence[float3]) -> None Add an extra acc to consecutive tracked objects, (only) for the next time step. Note if the user intends to add a persistent external force, then using family prescription is the better method.
- Tracker.AddAngAcc()¶
AddAngAcc(*args, **kwargs) Overloaded function. 1. AddAngAcc(self: deme._deme.Tracker, angAcc: float3, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> None Add an extra angular acceleration to the tracked body, for the next time step. Note if the user intends to add a persistent external torque, then using family prescription is the better method. 2. AddAngAcc(self: deme._deme.Tracker, angAcc: collections.abc.Sequence[float3]) -> None Add an extra angular acceleration to consecutive tracked objects, (only) for the next time step. Note if the user intends to add a persistent external torque, then using family prescription is the better method.
- Tracker.AngularVelocitiesGlobal()¶
AngularVelocitiesGlobal(self: deme._deme.Tracker) -> list[list[float]] Return global-frame angular velocities for all tracked owners.
- Tracker.AngularVelocitiesGlobalToDevice()¶
AngularVelocitiesGlobalToDevice(self: deme._deme.Tracker, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy all tracked global-frame angular velocities to caller-owned CUDA ``float3`` storage. ``capacity`` is in elements; ``device`` is the allocation's logical CUDA device.
- Tracker.AngularVelocitiesLocal()¶
AngularVelocitiesLocal(self: deme._deme.Tracker) -> list[list[float]] Return local principal-axis-frame angular velocities for all tracked owners.
- Tracker.AngularVelocitiesLocalToDevice()¶
AngularVelocitiesLocalToDevice(self: deme._deme.Tracker, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy all tracked local-frame angular velocities to caller-owned CUDA ``float3`` storage. ``capacity`` is in elements; ``device`` is the allocation's logical CUDA device.
- Tracker.AngVelGlobal()¶
AngVelGlobal(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> list[float] Return the global-frame angular velocity of the owner at ``offset``.
- Tracker.AngVelLocal()¶
AngVelLocal(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> list[float] Return the angular velocity of the owner at ``offset`` in its local principal-axis frame. Rotate it by ``OriQ(offset)`` to obtain the global-frame value.
- Tracker.ContactAcc()¶
ContactAcc(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> list[float] Get the a portion of the acceleration of this tracked object, that is the result of its contact with other simulation entities. In most cases, this means excluding the gravitational acceleration. The acceleration is in global frame.
- Tracker.ContactAccelerations()¶
ContactAccelerations(self: deme._deme.Tracker) -> list[list[float]] Get the acceleration experienced by all objects tracked by this tracker, that is the result of their contact with other simulation entities. The acceleration is in global frame. In most cases, this means excluding the gravitational acceleration. The acceleration is in global frame.
- Tracker.ContactAccelerationsToDevice()¶
ContactAccelerationsToDevice(self: deme._deme.Tracker, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy all tracked global-frame contact accelerations to caller-owned CUDA ``float3`` storage. Gravity and other non-contact acceleration are excluded.
- Tracker.ContactAngAccGlobal()¶
ContactAngAccGlobal(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> list[float] Get the a portion of the angular acceleration of this tracked object, that is the result of its contact with other simulation entities. The acceleration is in this object's global frame.
- Tracker.ContactAngAccLocal()¶
ContactAngAccLocal(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> list[float] Get the a portion of the angular acceleration of this tracked object, that is the result of its contact with other simulation entities. The acceleration is in this object's local frame.
- Tracker.ContactAngularAccelerationsGlobal()¶
ContactAngularAccelerationsGlobal(self: deme._deme.Tracker) -> list[list[float]] Get the angular acceleration experienced by all objects tracked by this tracker, that is the result of their contact with other simulation entities. The acceleration is in this object's global frame.
- Tracker.ContactAngularAccelerationsGlobalToDevice()¶
ContactAngularAccelerationsGlobalToDevice(self: deme._deme.Tracker, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy all tracked global-frame contact angular accelerations to caller-owned CUDA ``float3`` storage.
- Tracker.ContactAngularAccelerationsLocal()¶
ContactAngularAccelerationsLocal(self: deme._deme.Tracker) -> list[list[float]] Get the angular acceleration experienced by all objects tracked by this tracker, that is the result of their contact with other simulation entities. The acceleration is in this object's local frame.
- Tracker.ContactAngularAccelerationsLocalToDevice()¶
ContactAngularAccelerationsLocalToDevice(self: deme._deme.Tracker, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy all tracked local-frame contact angular accelerations to caller-owned CUDA ``float3`` storage.
- Tracker.FamiliesToDevice()¶
FamiliesToDevice(self: deme._deme.Tracker, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy all tracked family numbers to caller-owned CUDA ``uint32`` storage. ``capacity`` is in elements; ``device`` is the allocation's logical CUDA device.
- Tracker.GetContactClumps()¶
GetContactClumps(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> list[int] Get the clumps that are in contact with this tracked owner as a vector.
- Tracker.GetContactForces()¶
GetContactForces(self: deme._deme.Tracker, points: collections.abc.Sequence[float3], forces: collections.abc.Sequence[float3], offset: typing.SupportsInt | typing.SupportsIndex = 0) -> int Get all contact forces that concern this tracked object. Returns number of force pairs.
- Tracker.GetContactForcesAndGlobalTorque()¶
GetContactForcesAndGlobalTorque(self: deme._deme.Tracker, points: collections.abc.Sequence[float3], forces: collections.abc.Sequence[float3], torques: collections.abc.Sequence[float3], offset: typing.SupportsInt | typing.SupportsIndex = 0) -> int Get all contact forces and global torques that concern this tracked object. Returns number of force pairs.
- Tracker.GetContactForcesAndGlobalTorqueForAll()¶
GetContactForcesAndGlobalTorqueForAll(self: deme._deme.Tracker, points: collections.abc.Sequence[float3], forces: collections.abc.Sequence[float3], torques: collections.abc.Sequence[float3]) -> int Get all contact forces and global torques that concern all objects tracked by this tracker. Returns number of force pairs.
- Tracker.GetContactForcesAndGlobalTorqueForAllToDevice()¶
GetContactForcesAndGlobalTorqueForAllToDevice(self: deme._deme.Tracker, points: typing.SupportsInt | typing.SupportsIndex, forces: typing.SupportsInt | typing.SupportsIndex, torques: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> int Synchronously compact contact points, forces, and global-frame extra torques into caller-owned CUDA ``float3`` arrays. Capacity must cover the total recorded-contact count; the return value is the number of valid rows.
- Tracker.GetContactForcesAndLocalTorque()¶
GetContactForcesAndLocalTorque(self: deme._deme.Tracker, points: collections.abc.Sequence[float3], forces: collections.abc.Sequence[float3], torques: collections.abc.Sequence[float3], offset: typing.SupportsInt | typing.SupportsIndex = 0) -> int Get all contact forces and local torques that concern this tracked object. Returns number of force pairs.
- Tracker.GetContactForcesAndLocalTorqueForAll()¶
GetContactForcesAndLocalTorqueForAll(self: deme._deme.Tracker, points: collections.abc.Sequence[float3], forces: collections.abc.Sequence[float3], torques: collections.abc.Sequence[float3]) -> int Get all contact forces and local torques that concern all objects tracked by this tracker. Returns number of force pairs.
- Tracker.GetContactForcesAndLocalTorqueForAllToDevice()¶
GetContactForcesAndLocalTorqueForAllToDevice(self: deme._deme.Tracker, points: typing.SupportsInt | typing.SupportsIndex, forces: typing.SupportsInt | typing.SupportsIndex, torques: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> int Synchronously compact contact points, forces, and owner-local extra torques into caller-owned CUDA ``float3`` arrays. Capacity must cover the total recorded-contact count; the return value is the number of valid rows.
- Tracker.GetContactForcesForAll()¶
GetContactForcesForAll(self: deme._deme.Tracker, points: collections.abc.Sequence[float3], forces: collections.abc.Sequence[float3]) -> int Get all contact forces that concern all objects tracked by this tracker. Returns number of force pairs.
- Tracker.GetContactForcesForAllToDevice()¶
GetContactForcesForAllToDevice(self: deme._deme.Tracker, points: typing.SupportsInt | typing.SupportsIndex, forces: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> int Synchronously compact contact points and forces for all tracked owners into CUDA ``float3`` arrays. Each pointer must address ``capacity`` elements on logical CUDA ``device``. Capacity must cover the simulation's total recorded-contact count. The return value is the number of valid compacted rows. Contact force recording must be enabled.
- Tracker.GetFamilies()¶
GetFamilies(self: deme._deme.Tracker) -> list[int] Get the family numbers of all the tracked object.
- Tracker.GetFamily()¶
GetFamily(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> int Get the family number of the tracked object.
- Tracker.GetMesh()¶
GetMesh(self: deme._deme.Tracker) -> deme::DEMMesh Get a handle for the mesh this tracker is tracking.
- Tracker.GetMeshNodesGlobal()¶
GetMeshNodesGlobal(self: deme._deme.Tracker) -> list[float3] Get the current locations of all the nodes in the mesh being tracked.
- Tracker.GetOwnerID()¶
GetOwnerID(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> int Return the simulation-wide owner ID at ``offset`` within this tracker.
- Tracker.GetOwnerIDs()¶
GetOwnerIDs(self: deme._deme.Tracker) -> list[int] Return simulation-wide owner IDs for every owner covered by this tracker.
- Tracker.GetOwnerWildcardValue()¶
GetOwnerWildcardValue(self: deme._deme.Tracker, name: str, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> float Get the owner's wildcard value.
- Tracker.GetOwnerWildcardValues()¶
GetOwnerWildcardValues(self: deme._deme.Tracker, name: str) -> list[float] Get the owner wildcard values for all the owners entities tracked by this tracker.
- Tracker.Mass()¶
Mass(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> float Get the mass of the tracked object.
- Tracker.Masses()¶
Masses(self: deme._deme.Tracker) -> list[float] Get the masses of all the tracked objects.
- Tracker.MassesToDevice()¶
MassesToDevice(self: deme._deme.Tracker, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy all tracked masses to caller-owned CUDA ``float32`` storage. ``capacity`` is in elements; ``device`` is the allocation's logical CUDA device.
- Tracker.MOI()¶
MOI(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> list[float] Get the moment of inertia (in principal axis frame) of the tracked object.
- Tracker.MOIs()¶
MOIs(self: deme._deme.Tracker) -> list[list[float]] Get the moment of inertia (in principal axis frame) of all the tracked objects.
- Tracker.MOIsToDevice()¶
MOIsToDevice(self: deme._deme.Tracker, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy all tracked principal moments of inertia to caller-owned CUDA ``float3`` storage. ``capacity`` is in elements; ``device`` is the allocation's logical CUDA device.
- Tracker.OrientationQuaternions()¶
OrientationQuaternions(self: deme._deme.Tracker) -> list[list[float]] Return local-to-global orientation quaternions for all tracked owners. Each quaternion uses Python ordering ``(x, y, z, w)``.
- Tracker.OrientationQuaternionsToDevice()¶
OrientationQuaternionsToDevice(self: deme._deme.Tracker, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy all tracked local-to-global quaternions to caller-owned CUDA ``float4`` storage in ``(x, y, z, w)`` order. ``capacity`` is in elements.
- Tracker.OriQ()¶
OriQ(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> list[float] Return the quaternion rotating the owner-local frame to the global frame. Python ordering is ``(x, y, z, w)`` (Chrono ``(e1, e2, e3, e0)``).
- Tracker.OwnerWildcardValuesToDevice()¶
OwnerWildcardValuesToDevice(self: deme._deme.Tracker, name: str, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy the named ``float32`` owner wildcard for every tracked owner to caller-owned CUDA storage. ``capacity`` is in owner elements.
- Tracker.Pos()¶
Pos(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> list[float] Return the global-frame center-of-mass position of the tracked owner at ``offset``.
- Tracker.Positions()¶
Positions(self: deme._deme.Tracker) -> list[list[float]] Return global-frame center-of-mass positions for all owners covered by this tracker.
- Tracker.PositionsToDevice()¶
PositionsToDevice(self: deme._deme.Tracker, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy all tracked global positions to caller-owned CUDA memory. ``pointer`` is an integer address to writable, CUDA-accessible ``float3`` storage on logical CUDA ``device``. ``capacity`` is measured in ``float3`` elements and must cover every owner in this tracker. The caller owns the allocation and must keep it alive through the call.
- Tracker.SetAngVel()¶
SetAngVel(*args, **kwargs) Overloaded function. 1. SetAngVel(self: deme._deme.Tracker, angVel: float3, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> None Set the angular velocity of this tracked object in its own local coordinate system. 2. SetAngVel(self: deme._deme.Tracker, angVel: collections.abc.Sequence[float3]) -> None Set the angular velocity of consecutive tracked objects in their own local coordinate systems.
- Tracker.SetFamily()¶
SetFamily(*args, **kwargs) Overloaded function. 1. SetFamily(self: deme._deme.Tracker, fam_num: typing.SupportsInt | typing.SupportsIndex) -> None Change the family numbers of all the entities tracked by this tracker. 2. SetFamily(self: deme._deme.Tracker, fam_num: typing.SupportsInt | typing.SupportsIndex, offset: typing.SupportsInt | typing.SupportsIndex) -> None Change the family number of one entities tracked by this tracker.
- Tracker.SetOriQ()¶
SetOriQ(*args, **kwargs) Overloaded function. 1. SetOriQ(self: deme._deme.Tracker, oriQ: float4, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> None Set the quaternion which represents the orientation of this tracked object's coordinate system. 2. SetOriQ(self: deme._deme.Tracker, oriQ: collections.abc.Sequence[float4]) -> None Set the quaternion which represents the orientation of consecutive tracked objects' coordinate systems.
- Tracker.SetOwnerWildcardValue()¶
SetOwnerWildcardValue(self: deme._deme.Tracker, name: str, wc: typing.SupportsFloat | typing.SupportsIndex, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> None Set a wildcard value of the owner this tracker is tracking.
- Tracker.SetOwnerWildcardValues()¶
SetOwnerWildcardValues(self: deme._deme.Tracker, name: str, wc: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Set a wildcard value of the owner this tracker is tracking.
- Tracker.SetPos()¶
SetPos(*args, **kwargs) Overloaded function. 1. SetPos(self: deme._deme.Tracker, pos: float3, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> None Set the position of this tracked object. 2. SetPos(self: deme._deme.Tracker, pos: collections.abc.Sequence[float3]) -> None Set the positions of consecutive tracked objects.
- Tracker.SetVel()¶
SetVel(*args, **kwargs) Overloaded function. 1. SetVel(self: deme._deme.Tracker, vel: float3, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> None Set the velocity of this tracked object in global frame. 2. SetVel(self: deme._deme.Tracker, vel: collections.abc.Sequence[float3]) -> None Set the velocity of consecutive tracked objects in global frame.
- Tracker.UpdateMesh()¶
UpdateMesh(self: deme._deme.Tracker, new_nodes: collections.abc.Sequence[float3]) -> None Apply the new mesh node positions such that the tracked mesh is replaced by the new_nodes.
- Tracker.UpdateMeshByIncrement()¶
UpdateMeshByIncrement(self: deme._deme.Tracker, deformation: collections.abc.Sequence[float3]) -> None Change the coordinates of each mesh node by the given amount.
- Tracker.Vel()¶
Vel(self: deme._deme.Tracker, offset: typing.SupportsInt | typing.SupportsIndex = 0) -> list[float] Return the global-frame linear velocity of the owner at ``offset``.
- Tracker.Velocities()¶
Velocities(self: deme._deme.Tracker) -> list[list[float]] Return global-frame linear velocities for all tracked owners.
- Tracker.VelocitiesToDevice()¶
VelocitiesToDevice(self: deme._deme.Tracker, pointer: typing.SupportsInt | typing.SupportsIndex, capacity: typing.SupportsInt | typing.SupportsIndex, device: typing.SupportsInt | typing.SupportsIndex) -> None Synchronously copy all tracked global linear velocities to caller-owned CUDA ``float3`` storage. ``capacity`` is in elements; ``device`` is the allocation's logical CUDA device.
CNT_OUTPUT_CONTENT¶
- class CNT_OUTPUT_CONTENT¶
Members: CNT_TYPE FORCE POINT COMPONENT NORMAL TORQUE CNT_WILDCARD OWNER GEO_ID NICKNAME
- CNT_OUTPUT_CONTENT.__init__()¶
__init__(self: deme._deme.CNT_OUTPUT_CONTENT, value: typing.SupportsInt | typing.SupportsIndex) -> None
- CNT_OUTPUT_CONTENT.CNT_TYPE¶
Members: CNT_TYPE FORCE POINT COMPONENT NORMAL TORQUE CNT_WILDCARD OWNER GEO_ID NICKNAME
- CNT_OUTPUT_CONTENT.CNT_WILDCARD¶
Members: CNT_TYPE FORCE POINT COMPONENT NORMAL TORQUE CNT_WILDCARD OWNER GEO_ID NICKNAME
- CNT_OUTPUT_CONTENT.COMPONENT¶
Members: CNT_TYPE FORCE POINT COMPONENT NORMAL TORQUE CNT_WILDCARD OWNER GEO_ID NICKNAME
- CNT_OUTPUT_CONTENT.FORCE¶
Members: CNT_TYPE FORCE POINT COMPONENT NORMAL TORQUE CNT_WILDCARD OWNER GEO_ID NICKNAME
- CNT_OUTPUT_CONTENT.GEO_ID¶
Members: CNT_TYPE FORCE POINT COMPONENT NORMAL TORQUE CNT_WILDCARD OWNER GEO_ID NICKNAME
- CNT_OUTPUT_CONTENT.NICKNAME¶
Members: CNT_TYPE FORCE POINT COMPONENT NORMAL TORQUE CNT_WILDCARD OWNER GEO_ID NICKNAME
- CNT_OUTPUT_CONTENT.NORMAL¶
Members: CNT_TYPE FORCE POINT COMPONENT NORMAL TORQUE CNT_WILDCARD OWNER GEO_ID NICKNAME
- CNT_OUTPUT_CONTENT.OWNER¶
Members: CNT_TYPE FORCE POINT COMPONENT NORMAL TORQUE CNT_WILDCARD OWNER GEO_ID NICKNAME
- CNT_OUTPUT_CONTENT.POINT¶
Members: CNT_TYPE FORCE POINT COMPONENT NORMAL TORQUE CNT_WILDCARD OWNER GEO_ID NICKNAME
- CNT_OUTPUT_CONTENT.TORQUE¶
Members: CNT_TYPE FORCE POINT COMPONENT NORMAL TORQUE CNT_WILDCARD OWNER GEO_ID NICKNAME
ContactInfoContainer¶
- class ContactInfoContainer¶
Named arrays describing contacts selected by ``DEMSolver.SetContactOutputContent``.
- ContactInfoContainer.__init__()¶
__init__(self: deme._deme.ContactInfoContainer, arg0: typing.SupportsInt | typing.SupportsIndex, arg1: collections.abc.Sequence[tuple[str, str]]) -> None
- ContactInfoContainer.GetAGeo()¶
GetAGeo(self: deme._deme.ContactInfoContainer) -> list[int] Get AGeo number from the container.
- ContactInfoContainer.GetAOwner()¶
GetAOwner(self: deme._deme.ContactInfoContainer) -> list[int] Get AOwner number from the container.
- ContactInfoContainer.GetAOwnerFamily()¶
GetAOwnerFamily(self: deme._deme.ContactInfoContainer) -> list[int] Get AOwnerFamily number from the container.
- ContactInfoContainer.GetBGeo()¶
GetBGeo(self: deme._deme.ContactInfoContainer) -> list[int] Get BGeo number from the container.
- ContactInfoContainer.GetBOwner()¶
GetBOwner(self: deme._deme.ContactInfoContainer) -> list[int] Get BOwner number from the container.
- ContactInfoContainer.GetBOwnerFamily()¶
GetBOwnerFamily(self: deme._deme.ContactInfoContainer) -> list[int] Get BOwnerFamily number from the container.
- ContactInfoContainer.GetContactType()¶
GetContactType(self: deme._deme.ContactInfoContainer) -> list[str] Get contact type as strings from the container.
- ContactInfoContainer.GetForce()¶
GetForce(self: deme._deme.ContactInfoContainer) -> list[float3] Get force as vectors from the container.
- ContactInfoContainer.GetNormal()¶
GetNormal(self: deme._deme.ContactInfoContainer) -> list[float3] Get contact normal as vectors from the container.
- ContactInfoContainer.GetPoint()¶
GetPoint(self: deme._deme.ContactInfoContainer) -> list[float3] Get contact points as vectors from the container.
- ContactInfoContainer.GetTorque()¶
GetTorque(self: deme._deme.ContactInfoContainer) -> list[float3] Get torque as vectors from the container.
DataContainer¶
- class DataContainer¶
String-keyed container used to return named arrays from DEME.
- DataContainer.__init__()¶
__init__(self: deme._deme.DataContainer) -> None Create an empty data container.
- DataContainer.Get()¶
Get(self: deme._deme.DataContainer, key: str) -> list[float] Return the stored float array named ``key`` by reference. This is primarily used for wildcard output.
DEMClumpBatch¶
- class DEMClumpBatch¶
Cached setup data for a batch of clump instances.
- DEMClumpBatch.__init__()¶
__init__(self: deme._deme.DEMClumpBatch, count: typing.SupportsInt | typing.SupportsIndex) -> None Create setup storage for ``count`` clumps.
- DEMClumpBatch.AddExistingContactWildcard()¶
AddExistingContactWildcard(self: deme._deme.DEMClumpBatch, name: str, values: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Add one named restart contact-wildcard array after ``SetExistingContacts``.
- DEMClumpBatch.AddOwnerWildcard()¶
AddOwnerWildcard(*args, **kwargs) Overloaded function. 1. AddOwnerWildcard(self: deme._deme.DEMClumpBatch, name: str, values: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Add one initial owner wildcard with one value per clump. 2. AddOwnerWildcard(self: deme._deme.DEMClumpBatch, name: str, value: typing.SupportsFloat | typing.SupportsIndex) -> None Add one initial owner wildcard with the same value for every clump.
- DEMClumpBatch.GetNumClumps()¶
GetNumClumps(self: deme._deme.DEMClumpBatch) -> int Return the number of clumps in this batch.
- DEMClumpBatch.GetNumContacts()¶
GetNumContacts(self: deme._deme.DEMClumpBatch) -> int Return the number of pre-existing contacts supplied for restart initialization.
- DEMClumpBatch.GetNumSpheres()¶
GetNumSpheres(self: deme._deme.DEMClumpBatch) -> int Return the total number of component spheres represented by this batch.
- DEMClumpBatch.SetExistingContacts()¶
SetExistingContacts(self: deme._deme.DEMClumpBatch, pairs: collections.abc.Sequence[tuple[typing.SupportsInt | typing.SupportsIndex, typing.SupportsInt | typing.SupportsIndex]]) -> None Supply sphere-sphere contact owner-ID pairs relative to this batch when restoring a simulation.
- DEMClumpBatch.SetExistingContactWildcards()¶
SetExistingContactWildcards(self: deme._deme.DEMClumpBatch, wildcards: collections.abc.Mapping[str, collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]]) -> None Supply named restart wildcard arrays after ``SetExistingContacts``. Every array must match the pre-existing contact count.
- DEMClumpBatch.SetFamilies()¶
SetFamilies(*args, **kwargs) Overloaded function. 1. SetFamilies(self: deme._deme.DEMClumpBatch, families: collections.abc.Sequence[typing.SupportsInt | typing.SupportsIndex]) -> None Set one family number per clump. Family behavior is configured on the solver. 2. SetFamilies(self: deme._deme.DEMClumpBatch, family: typing.SupportsInt | typing.SupportsIndex) -> None Set the same family number for every clump.
- DEMClumpBatch.SetFamily()¶
SetFamily(self: deme._deme.DEMClumpBatch, family: typing.SupportsInt | typing.SupportsIndex) -> None Set the same family number for every clump.
- DEMClumpBatch.SetOwnerWildcards()¶
SetOwnerWildcards(self: deme._deme.DEMClumpBatch, wildcards: collections.abc.Mapping[str, collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]]) -> None Set named initial owner-wildcard arrays. Every array must match the clump count.
- DEMClumpBatch.SetType()¶
SetType(self: deme._deme.DEMClumpBatch, type: deme._deme.DEMClumpTemplate) -> None Assign the same clump template to every instance.
- DEMClumpBatch.SetTypes()¶
SetTypes(*args, **kwargs) Overloaded function. 1. SetTypes(self: deme._deme.DEMClumpBatch, types: collections.abc.Sequence[deme._deme.DEMClumpTemplate]) -> None Assign one clump template per instance. The sequence length must equal the batch size. 2. SetTypes(self: deme._deme.DEMClumpBatch, type: deme._deme.DEMClumpTemplate) -> None Assign the same clump template to every instance.
- DEMClumpBatch.SetVel()¶
SetVel(*args, **kwargs) Overloaded function. 1. SetVel(self: deme._deme.DEMClumpBatch, velocities: collections.abc.Sequence[collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]]) -> None Set one global initial linear velocity vector per clump. 2. SetVel(self: deme._deme.DEMClumpBatch, velocity: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Set the same global initial linear velocity for every clump.
DEMClumpTemplate¶
- class DEMClumpTemplate¶
Reusable rigid clump topology composed of one or more sphere components.
- DEMClumpTemplate.__init__()¶
__init__(self: deme._deme.DEMClumpTemplate) -> None Create an empty clump template.
- DEMClumpTemplate.AssignName()¶
AssignName(self: deme._deme.DEMClumpTemplate, name: str) -> None Assign the clump type name written to output files.
- DEMClumpTemplate.InformCentroidPrincipal()¶
InformCentroidPrincipal(self: deme._deme.DEMClumpTemplate, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], orientation: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Re-express component positions about the supplied center of mass and principal orientation.
- DEMClumpTemplate.Mass()¶
Mass(self: deme._deme.DEMClumpTemplate) -> float Return the clump mass.
- DEMClumpTemplate.MOI()¶
MOI(self: deme._deme.DEMClumpTemplate) -> float3 Return principal moments of inertia in the clump-local principal frame.
- DEMClumpTemplate.Move()¶
Move(self: deme._deme.DEMClumpTemplate, translation: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], quaternion: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Apply a translation and quaternion rotation to the component coordinates.
- DEMClumpTemplate.ReadComponentFromFile()¶
ReadComponentFromFile(self: deme._deme.DEMClumpTemplate, filename: str, x_id: str = 'x', y_id: str = 'y', z_id: str = 'z', r_id: str = 'r') -> int Load sphere-component positions and radii from a delimited file.
- DEMClumpTemplate.Scale()¶
Scale(self: deme._deme.DEMClumpTemplate, factor: typing.SupportsFloat | typing.SupportsIndex) -> None Uniformly scale component radii and relative positions.
- DEMClumpTemplate.SetMass()¶
SetMass(self: deme._deme.DEMClumpTemplate, mass: typing.SupportsFloat | typing.SupportsIndex) -> None Set the clump mass.
- DEMClumpTemplate.SetMaterial()¶
SetMaterial(*args, **kwargs) Overloaded function. 1. SetMaterial(self: deme._deme.DEMClumpTemplate, materials: collections.abc.Sequence[deme._deme.DEMMaterial]) -> None Assign one material per sphere component. The sequence length must equal the component count. 2. SetMaterial(self: deme._deme.DEMClumpTemplate, material: deme._deme.DEMMaterial) -> None Assign the same material to every sphere component.
- DEMClumpTemplate.SetMOI()¶
SetMOI(self: deme._deme.DEMClumpTemplate, MOI: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Set the three principal moments of inertia in the clump-local frame.
- DEMClumpTemplate.SetVolume()¶
SetVolume(self: deme._deme.DEMClumpTemplate, volume: typing.SupportsFloat | typing.SupportsIndex) -> None Set the clump volume, which is required for void-ratio queries.
DEMCombinedInstances¶
- class DEMCombinedInstances¶
A batch of instantiated combined owners and their member-owner metadata.
- DEMCombinedInstances.__init__()¶
__init__(self: deme._deme.DEMCombinedInstances) -> None Create an empty combined-instance batch.
- DEMCombinedInstances.AddOwnerWildcard()¶
AddOwnerWildcard(*args, **kwargs) Overloaded function. 1. AddOwnerWildcard(self: deme._deme.DEMCombinedInstances, name: str, vals: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Add an owner wildcard to all member owners with per-owner values. 2. AddOwnerWildcard(self: deme._deme.DEMCombinedInstances, name: str, val: typing.SupportsFloat | typing.SupportsIndex) -> None Add an owner wildcard to all member owners with a uniform value.
- DEMCombinedInstances.GetNumOwners()¶
GetNumOwners(self: deme._deme.DEMCombinedInstances) -> int Get total number of member owners in this combined batch.
DEMCombinedTemplate¶
- class DEMCombinedTemplate¶
Reusable rigid grouping of clump or mesh templates with fixed member-relative transforms.
- DEMCombinedTemplate.__init__()¶
__init__(self: deme._deme.DEMCombinedTemplate) -> None Create an empty combined-owner template.
DEMERuntimeDataHelper¶
- class DEMERuntimeDataHelper¶
No class description is currently available.
- DEMERuntimeDataHelper.__init__()¶
__init__(self: deme._deme.DEMERuntimeDataHelper) -> None
- DEMERuntimeDataHelper.SetPathPrefix()¶
Convert a function to be a static method. A static method does not receive an implicit first argument. To declare a static method, use this idiom: class C: @staticmethod def f(arg1, arg2, argN): ... It can be called either on the class (e.g. C.f()) or on an instance (e.g. C().f()). Both the class and the instance are ignored, and neither is passed implicitly as the first argument to the method. Static methods in Python are similar to those found in Java or C++. For a more advanced concept, see the classmethod builtin.
DEMExternObj¶
- class DEMExternObj¶
Analytical external owner composed of planes, cylinders, and related primitives.
- DEMExternObj.__init__()¶
__init__(self: deme._deme.DEMExternObj) -> None Create an empty analytical external object.
- DEMExternObj.AddCylinder()¶
AddCylinder(self: deme._deme.DEMExternObj, pos: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], axis: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], rad: typing.SupportsFloat | typing.SupportsIndex, material: deme._deme.DEMMaterial, normal: bool = False) -> None Add an infinite cylinder along a user-specified object-local axis.
- DEMExternObj.AddPlane()¶
AddPlane(self: deme._deme.DEMExternObj, point: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], normal: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], material: deme._deme.DEMMaterial) -> None Add an infinite plane specified by a point and normal in the object's local frame.
- DEMExternObj.AddZCylinder()¶
AddZCylinder(self: deme._deme.DEMExternObj, pos: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], rad: typing.SupportsFloat | typing.SupportsIndex, material: deme._deme.DEMMaterial, normal: bool = False) -> None Add an infinite cylinder aligned with the object-local Z axis.
- DEMExternObj.entity_params¶
Bound attribute.
- DEMExternObj.family_code¶
Bound attribute.
- DEMExternObj.init_oriQ¶
Bound attribute.
- DEMExternObj.init_pos¶
Bound attribute.
- DEMExternObj.load_order¶
Bound attribute.
- DEMExternObj.Mass()¶
Mass(self: deme._deme.DEMExternObj) -> float Return the object's mass.
- DEMExternObj.mass¶
Bound attribute.
- DEMExternObj.materials¶
Bound attribute.
- DEMExternObj.MOI¶
Bound attribute.
- DEMExternObj.SetFamily()¶
SetFamily(self: deme._deme.DEMExternObj, family: typing.SupportsInt | typing.SupportsIndex) -> None Set the contact family number before initialization.
- DEMExternObj.SetInitPos()¶
SetInitPos(self: deme._deme.DEMExternObj, position: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Set the initial global center-of-mass position before initialization.
- DEMExternObj.SetInitQuat()¶
SetInitQuat(self: deme._deme.DEMExternObj, quaternion: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Set the initial local-to-global orientation quaternion ``(x, y, z, w)`` before initialization.
- DEMExternObj.SetMass()¶
SetMass(self: deme._deme.DEMExternObj, mass: typing.SupportsFloat | typing.SupportsIndex) -> None Set the object mass.
- DEMExternObj.SetMOI()¶
SetMOI(self: deme._deme.DEMExternObj, MOI: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Set the three principal moments of inertia in the object-local frame.
- DEMExternObj.types¶
Bound attribute.
DEMForceModel¶
- class DEMForceModel¶
No class description is currently available.
- DEMForceModel.__init__()¶
__init__(self: deme._deme.DEMForceModel, model: deme::FORCE_MODEL) -> None Create a force-model definition of the selected built-in type.
- DEMForceModel.DefineCustomModel()¶
DefineCustomModel(self: deme._deme.DEMForceModel, arg0: str) -> None Define user-custom force model with a string which is your force calculation code.
- DEMForceModel.DefineCustomModelPrerequisites()¶
DefineCustomModelPrerequisites(self: deme._deme.DEMForceModel, arg0: str) -> None Define user-custom force model's utility __device__ functions with a string.
- DEMForceModel.ReadCustomModelFile()¶
ReadCustomModelFile(self: deme._deme.DEMForceModel, arg0: std::filesystem::__cxx11::path) -> int Read user-custom force model from a file (which by default should reside in kernel/DEMUserScripts), which contains your force calculation code. Returns 0 if read successfully, otherwise 1.
- DEMForceModel.ReadCustomModelPrerequisitesFile()¶
ReadCustomModelPrerequisitesFile(self: deme._deme.DEMForceModel, arg0: std::filesystem::__cxx11::path) -> int Read user-custom force model's utility __device__ functions from a file (which by default should reside in kernel/DEMUserScripts). Returns 0 if read successfully, otherwise 1.
- DEMForceModel.SetForceModelType()¶
SetForceModelType(self: deme._deme.DEMForceModel, arg0: deme::FORCE_MODEL) -> None Set the contact force model type
- DEMForceModel.SetMustHaveMatProp()¶
SetMustHaveMatProp(self: deme._deme.DEMForceModel, arg0: collections.abc.Set[str]) -> None Specifiy the material properties that this force model will use
- DEMForceModel.SetMustPairwiseMatProp()¶
SetMustPairwiseMatProp(self: deme._deme.DEMForceModel, arg0: collections.abc.Set[str]) -> None Specifiy the material properties that are pair-wise (instead of being associated with each individual material).
- DEMForceModel.SetPerContactWildcards()¶
SetPerContactWildcards(self: deme._deme.DEMForceModel, arg0: collections.abc.Set[str]) -> None Set the names for the extra quantities that will be associated with each contact pair. For example, history-based models should have 3 float arrays to store contact history. Only float is supported. Note the initial value of all contact wildcard arrays is automatically 0
- DEMForceModel.SetPerOwnerWildcards()¶
SetPerOwnerWildcards(self: deme._deme.DEMForceModel, arg0: collections.abc.Set[str]) -> None Set the names for the extra quantities that will be associated with each owner. For example, you can use this to associate a cohesion parameter to each particle. Only float is supported.
DEMInitializer¶
- class DEMInitializer¶
No class description is currently available.
- DEMInitializer.__init__()¶
__init__(self: deme._deme.DEMInitializer) -> None
DEMInspector¶
- class DEMInspector¶
Evaluate a configured aggregate or spatial quantity from initialized simulation state.
- DEMInspector.__init__()¶
__init__(self: deme._deme.DEMInspector, arg0: deme::DEMSolver, arg1: deme::DEMDynamicThread, arg2: str) -> None
- DEMInspector.GetValue()¶
GetValue(self: deme._deme.DEMInspector) -> float Synchronize as needed and return the inspector's current scalar value.
DEMMaterial¶
- class DEMMaterial¶
Material property name/value pairs used by a contact force model.
- DEMMaterial.__init__()¶
__init__(self: deme._deme.DEMMaterial, properties: collections.abc.Mapping[str, typing.SupportsFloat | typing.SupportsIndex]) -> None Create material properties. Normally use ``DEMSolver.LoadMaterial`` so the material is registered.
- DEMMaterial.load_order¶
Bound attribute.
- DEMMaterial.mat_prop¶
Bound attribute.
DEMMesh¶
- class DEMMesh¶
Connected triangle-mesh template or external mesh owner.
- DEMMesh.__init__()¶
__init__(*args, **kwargs) Overloaded function. 1. __init__(self: deme._deme.DEMMesh) -> None Create an empty mesh. 2. __init__(self: deme._deme.DEMMesh, filename: str) -> None Load a mesh from a Wavefront OBJ file. 3. __init__(self: deme._deme.DEMMesh, filename: str, material: deme._deme.DEMMaterial) -> None Load a Wavefront OBJ mesh and assign one material to every triangle.
- DEMMesh.ArePatchesExplicitlySet()¶
ArePatchesExplicitlySet(self: deme._deme.DEMMesh) -> bool Return whether patch IDs were explicitly supplied or computed.
- DEMMesh.Clear()¶
Clear(self: deme._deme.DEMMesh) -> None Remove all mesh geometry and cached attributes.
- DEMMesh.ClearWildcards()¶
ClearWildcards(self: deme._deme.DEMMesh) -> None Remove cached triangle wildcard values.
- DEMMesh.DisableShell()¶
DisableShell(self: deme._deme.DEMMesh) -> None Disable finite-thickness shell mode.
- DEMMesh.GetCoordsVertices()¶
GetCoordsVertices(self: deme._deme.DEMMesh) -> list[list[float]] Return mesh vertex coordinates as ``[[x, y, z], ...]``.
- DEMMesh.GetIndicesVertexes()¶
GetIndicesVertexes(self: deme._deme.DEMMesh) -> list[list[int]] Return triangle vertex-index triplets.
- DEMMesh.GetNumNodes()¶
GetNumNodes(self: deme._deme.DEMMesh) -> int Get the number of nodes in the mesh
- DEMMesh.GetNumPatches()¶
GetNumPatches(self: deme._deme.DEMMesh) -> int Get the number of mesh patches.
- DEMMesh.GetNumTriangles()¶
GetNumTriangles(self: deme._deme.DEMMesh) -> int Get the number of triangles already added to this mesh
- DEMMesh.GetPatchIDs()¶
GetPatchIDs(self: deme._deme.DEMMesh) -> list[int] Get one patch ID per triangle.
- DEMMesh.GetShellThickness()¶
GetShellThickness(self: deme._deme.DEMMesh) -> float Return the full shell thickness.
- DEMMesh.GetTriangle()¶
GetTriangle(self: deme._deme.DEMMesh, arg0: typing.SupportsInt | typing.SupportsIndex) -> deme::DEMTriangle Access the n-th triangle in mesh
- DEMMesh.InformCentroidPrincipal()¶
InformCentroidPrincipal(self: deme._deme.DEMMesh, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], orientation: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Re-express mesh vertices about the supplied center of mass and principal orientation.
- DEMMesh.IsShell()¶
IsShell(self: deme._deme.DEMMesh) -> bool Return whether this mesh is configured as a shell.
- DEMMesh.LoadWavefrontMesh()¶
LoadWavefrontMesh(self: deme._deme.DEMMesh, input_file: str, load_normals: bool = True, load_uv: bool = False) -> bool Load a triangle mesh saved as a Wavefront .obj file
- DEMMesh.Mass()¶
Mass(self: deme._deme.DEMMesh) -> float Return the mesh owner's mass.
- DEMMesh.Mirror()¶
Mirror(self: deme._deme.DEMMesh, point: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], normal: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Mirror vertices about a plane specified by a point and normal.
- DEMMesh.MOI()¶
MOI(self: deme._deme.DEMMesh) -> float3 Return principal moments of inertia in the mesh-local frame.
- DEMMesh.Move()¶
Move(self: deme._deme.DEMMesh, translation: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], quaternion: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Apply a translation and quaternion rotation to mesh vertices.
- DEMMesh.Scale()¶
Scale(*args, **kwargs) Overloaded function. 1. Scale(self: deme._deme.DEMMesh, factor: typing.SupportsFloat | typing.SupportsIndex) -> None Uniformly scale mesh vertices. 2. Scale(self: deme._deme.DEMMesh, factors: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Scale mesh vertices independently along X, Y, and Z.
- DEMMesh.SetFamily()¶
SetFamily(self: deme._deme.DEMMesh, family: typing.SupportsInt | typing.SupportsIndex) -> None Set the contact family number before initialization.
- DEMMesh.SetInitPos()¶
SetInitPos(self: deme._deme.DEMMesh, position: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Set the initial global center-of-mass position.
- DEMMesh.SetInitQuat()¶
SetInitQuat(self: deme._deme.DEMMesh, quaternion: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Set the initial local-to-global orientation quaternion ``(x, y, z, w)``.
- DEMMesh.SetMass()¶
SetMass(self: deme._deme.DEMMesh, mass: typing.SupportsFloat | typing.SupportsIndex) -> None Set the mesh owner's mass.
- DEMMesh.SetMaterial()¶
SetMaterial(*args, **kwargs) Overloaded function. 1. SetMaterial(self: deme._deme.DEMMesh, material: deme._deme.DEMMaterial) -> None Assign the same material to every mesh triangle. 2. SetMaterial(self: deme._deme.DEMMesh, materials: collections.abc.Sequence[deme._deme.DEMMaterial]) -> None Assign one material per triangle. The sequence length must equal the triangle count.
- DEMMesh.SetMOI()¶
SetMOI(self: deme._deme.DEMMesh, MOI: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> None Set the three principal moments of inertia in the mesh-local frame.
- DEMMesh.SetPatchIDs()¶
SetPatchIDs(self: deme._deme.DEMMesh, patch_ids: collections.abc.Sequence[typing.SupportsInt | typing.SupportsIndex]) -> None Set one patch ID per triangle.
- DEMMesh.SetShellThickness()¶
SetShellThickness(self: deme._deme.DEMMesh, thickness: typing.SupportsFloat | typing.SupportsIndex) -> None Treat this mesh as a finite-thickness shell.
- DEMMesh.SplitIntoConvexPatches()¶
SplitIntoConvexPatches(self: deme._deme.DEMMesh, hard_angle_deg: typing.SupportsFloat | typing.SupportsIndex = 30.0) -> int Split the mesh into connected angle-threshold patches.
- DEMMesh.UseNormals()¶
UseNormals(self: deme._deme.DEMMesh, use: bool = True) -> None Instruct that when the mesh is initialized into the system, it will re-order the nodes of each triangle so that the normals derived from right-hand-rule are the same as the normals in the mesh file
- DEMMesh.WriteWavefront()¶
WriteWavefront(self: str, output_file: collections.abc.Sequence[deme._deme.DEMMesh]) -> None Write the mesh geometry to a Wavefront OBJ file.
DEMTrackedObj¶
- class DEMTrackedObj¶
No class description is currently available.
- DEMTrackedObj.__init__()¶
__init__(self: deme._deme.DEMTrackedObj, arg0: deme._deme.DEMTrackedObj) -> None
FORCE_MODEL¶
- class FORCE_MODEL¶
Members: HERTZIAN HERTZIAN_FRICTIONLES CUSTOM
- FORCE_MODEL.__init__()¶
__init__(self: deme._deme.FORCE_MODEL, value: typing.SupportsInt | typing.SupportsIndex) -> None
- FORCE_MODEL.CUSTOM¶
Members: HERTZIAN HERTZIAN_FRICTIONLES CUSTOM
- FORCE_MODEL.HERTZIAN¶
Members: HERTZIAN HERTZIAN_FRICTIONLES CUSTOM
- FORCE_MODEL.HERTZIAN_FRICTIONLES¶
Members: HERTZIAN HERTZIAN_FRICTIONLES CUSTOM
GridSampler¶
- class GridSampler¶
Regular-grid volumetric point sampler.
- GridSampler.__init__()¶
__init__(self: deme._deme.GridSampler, separation: typing.SupportsFloat | typing.SupportsIndex) -> None Create a regular-grid sampler with uniform point spacing.
- GridSampler.GetSeparation()¶
GetSeparation(self: deme._deme.GridSampler) -> float Return the current grid spacing.
- GridSampler.SampleBox()¶
SampleBox(self: deme._deme.GridSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], halfDim: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> list[list[float]] Return points sampled from the specified box volume.
- GridSampler.SampleCylinderX()¶
SampleCylinderX(self: deme._deme.GridSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex, halfHeight: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from an X-aligned cylindrical volume.
- GridSampler.SampleCylinderY()¶
SampleCylinderY(self: deme._deme.GridSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex, halfHeight: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from a Y-aligned cylindrical volume.
- GridSampler.SampleCylinderZ()¶
SampleCylinderZ(self: deme._deme.GridSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex, halfHeight: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from a Z-aligned cylindrical volume.
- GridSampler.SampleSphere()¶
SampleSphere(self: deme._deme.GridSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from the specified spherical volume.
- GridSampler.SetSeparation()¶
SetSeparation(self: deme._deme.GridSampler, separation: typing.SupportsFloat | typing.SupportsIndex) -> None Set the point spacing used by subsequent samples.
HCPSampler¶
- class HCPSampler¶
Hexagonally close-packed volumetric point sampler.
- HCPSampler.__init__()¶
__init__(self: deme._deme.HCPSampler, separation: typing.SupportsFloat | typing.SupportsIndex) -> None Create an HCP sampler with the requested point separation.
- HCPSampler.GetSeparation()¶
GetSeparation(self: deme._deme.HCPSampler) -> float Return the current point separation.
- HCPSampler.SampleBox()¶
SampleBox(self: deme._deme.HCPSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], halfDim: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> list[list[float]] Return points sampled from the specified box volume.
- HCPSampler.SampleCylinderX()¶
SampleCylinderX(self: deme._deme.HCPSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex, halfHeight: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from an X-aligned cylindrical volume.
- HCPSampler.SampleCylinderY()¶
SampleCylinderY(self: deme._deme.HCPSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex, halfHeight: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from a Y-aligned cylindrical volume.
- HCPSampler.SampleCylinderZ()¶
SampleCylinderZ(self: deme._deme.HCPSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex, halfHeight: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from a Z-aligned cylindrical volume.
- HCPSampler.SampleSphere()¶
SampleSphere(self: deme._deme.HCPSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from the specified spherical volume.
- HCPSampler.SetSeparation()¶
SetSeparation(self: deme._deme.HCPSampler, separation: typing.SupportsFloat | typing.SupportsIndex) -> None Set the point separation used by subsequent samples.
MESH_FORMAT¶
- class MESH_FORMAT¶
Members: VTK OBJ STL PLY
- MESH_FORMAT.__init__()¶
__init__(self: deme._deme.MESH_FORMAT, value: typing.SupportsInt | typing.SupportsIndex) -> None
- MESH_FORMAT.OBJ¶
Members: VTK OBJ STL PLY
- MESH_FORMAT.PLY¶
Members: VTK OBJ STL PLY
- MESH_FORMAT.STL¶
Members: VTK OBJ STL PLY
- MESH_FORMAT.VTK¶
Members: VTK OBJ STL PLY
OUTPUT_CONTENT¶
- class OUTPUT_CONTENT¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
- OUTPUT_CONTENT.__init__()¶
__init__(self: deme._deme.OUTPUT_CONTENT, value: typing.SupportsInt | typing.SupportsIndex) -> None
- OUTPUT_CONTENT.ABS_ACC¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
- OUTPUT_CONTENT.ABSV¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
- OUTPUT_CONTENT.ACC¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
- OUTPUT_CONTENT.ANG_ACC¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
- OUTPUT_CONTENT.ANG_VEL¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
- OUTPUT_CONTENT.FAMILY¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
- OUTPUT_CONTENT.MAT¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
- OUTPUT_CONTENT.OWNER_WILDCARD¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
- OUTPUT_CONTENT.QUAT¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
- OUTPUT_CONTENT.VEL¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
- OUTPUT_CONTENT.XYZ¶
Members: XYZ QUAT ABSV VEL ANG_VEL ABS_ACC ACC ANG_ACC FAMILY MAT OWNER_WILDCARD
OUTPUT_FORMAT¶
- class OUTPUT_FORMAT¶
Members: CSV BINARY
- OUTPUT_FORMAT.__init__()¶
__init__(self: deme._deme.OUTPUT_FORMAT, value: typing.SupportsInt | typing.SupportsIndex) -> None
- OUTPUT_FORMAT.BINARY¶
Members: CSV BINARY
- OUTPUT_FORMAT.CSV¶
Members: CSV BINARY
OWNER_TYPE¶
- class OWNER_TYPE¶
Members: CLUMP ANALYTICAL MESH
- OWNER_TYPE.__init__()¶
__init__(self: deme._deme.OWNER_TYPE, value: typing.SupportsInt | typing.SupportsIndex) -> None
- OWNER_TYPE.ANALYTICAL¶
Members: CLUMP ANALYTICAL MESH
- OWNER_TYPE.CLUMP¶
Members: CLUMP ANALYTICAL MESH
- OWNER_TYPE.MESH¶
Members: CLUMP ANALYTICAL MESH
PDSampler¶
- class PDSampler¶
Poisson-disk volumetric sampler enforcing a minimum point separation.
- PDSampler.__init__()¶
__init__(self: deme._deme.PDSampler, separation: typing.SupportsFloat | typing.SupportsIndex) -> None Create a sampler with the requested minimum separation.
- PDSampler.GetSeparation()¶
GetSeparation(self: deme._deme.PDSampler) -> float Return the current minimum separation.
- PDSampler.SampleBox()¶
SampleBox(self: deme._deme.PDSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], halfDim: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex]) -> list[list[float]] Return points sampled from the specified box volume.
- PDSampler.SampleCylinderX()¶
SampleCylinderX(self: deme._deme.PDSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex, halfHeight: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from an X-aligned cylindrical volume.
- PDSampler.SampleCylinderY()¶
SampleCylinderY(self: deme._deme.PDSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex, halfHeight: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from a Y-aligned cylindrical volume.
- PDSampler.SampleCylinderZ()¶
SampleCylinderZ(self: deme._deme.PDSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex, halfHeight: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from a Z-aligned cylindrical volume.
- PDSampler.SampleSphere()¶
SampleSphere(self: deme._deme.PDSampler, center: collections.abc.Sequence[typing.SupportsFloat | typing.SupportsIndex], radius: typing.SupportsFloat | typing.SupportsIndex) -> list[list[float]] Return points sampled from the specified spherical volume.
- PDSampler.SetRandomEngineSeed()¶
SetRandomEngineSeed(self: deme._deme.PDSampler, seed: typing.SupportsInt | typing.SupportsIndex) -> None Seed the random engine so Poisson-disk samples can be reproduced.
- PDSampler.SetSeparation()¶
SetSeparation(self: deme._deme.PDSampler, separation: typing.SupportsFloat | typing.SupportsIndex) -> None Set the minimum separation used by subsequent samples.
SPATIAL_DIR¶
- class SPATIAL_DIR¶
Members: X Y Z NONE
- SPATIAL_DIR.__init__()¶
__init__(self: deme._deme.SPATIAL_DIR, value: typing.SupportsInt | typing.SupportsIndex) -> None
- SPATIAL_DIR.NONE¶
Members: X Y Z NONE
- SPATIAL_DIR.X¶
Members: X Y Z NONE
- SPATIAL_DIR.Y¶
Members: X Y Z NONE
- SPATIAL_DIR.Z¶
Members: X Y Z NONE
TIME_INTEGRATOR¶
- class TIME_INTEGRATOR¶
Members: FORWARD_EULER CENTERED_DIFFERENCE EXTENDED_TAYLOR CHUNG
- TIME_INTEGRATOR.__init__()¶
__init__(self: deme._deme.TIME_INTEGRATOR, value: typing.SupportsInt | typing.SupportsIndex) -> None
- TIME_INTEGRATOR.CENTERED_DIFFERENCE¶
Members: FORWARD_EULER CENTERED_DIFFERENCE EXTENDED_TAYLOR CHUNG
- TIME_INTEGRATOR.CHUNG¶
Members: FORWARD_EULER CENTERED_DIFFERENCE EXTENDED_TAYLOR CHUNG
- TIME_INTEGRATOR.EXTENDED_TAYLOR¶
Members: FORWARD_EULER CENTERED_DIFFERENCE EXTENDED_TAYLOR CHUNG
- TIME_INTEGRATOR.FORWARD_EULER¶
Members: FORWARD_EULER CENTERED_DIFFERENCE EXTENDED_TAYLOR CHUNG