Skip to content
  • 0 Votes
    2 Posts
    211 Views
    ofliO

    Hi @yiyang did it happen with one particular simulation project or does it always happen? Please (if you can) share the project with Sim4Life Application team via sending an email to s4-support@zmt.swiss to check. Thanks

  • 0 Votes
    1 Posts
    187 Views
    No one has replied
  • Anatomical model extraction and dimension

    Anatomical Models
    7
    1 Votes
    7 Posts
    679 Views
    A

    Thank You, It really works.

  • 0 Votes
    1 Posts
    160 Views
    No one has replied
  • 0 Votes
    5 Posts
    411 Views
    brynB

    @MSJ the modify button is probably hidden on the top right, if you click the triangle where you see the three dots (...).

  • 3D Surface model to Voxel and export

    Sim4Life
    2
    0 Votes
    2 Posts
    325 Views
    brynB

    Are you using Sim4Life lite (web version)? I recorded my screen while I voxeled Duke V2.0 and exported the voxels.
    There seems to be a glitch in the Reload button when I try to see the data that was saved in the Study: as a workaround the Reload button in the DATA tab works. I voxeled at 15mm, so the skin is not completely closed, but if you choose something like 5-10mm it should be enough to resolve thin layers (like the skin):

    BTW. if you are using a desktop version of Sim4Life, the workflow is similar, except that the software uses native Windows file dialogs to save/load files.

    Youtube Video

  • 0 Votes
    1 Posts
    186 Views
    No one has replied
  • Padding field with constant value

    Analysis & Postprocessing
    1
    0 Votes
    1 Posts
    169 Views
    No one has replied
  • Geometry Modeling - Snapping to Endpoints in Python API ?

    Solved Python API
    3
    0 Votes
    3 Posts
    364 Views
    brynB

    Hi @dbsim4
    I think it would help a lot if you could post an image depicting what you are trying to achieve.

    Answering the question from the subject line: No, there is no snapping in Python (not sure how that API could look like), but there are functions to get the distance between entities (and corresponding closest points), which may help.

    brick1 = XCoreModeling.CreateSolidBlock(Vec3(0), Vec3(1)) brick2 = XCoreModeling.CreateSolidBlock(Vec3(2), Vec3(3)) res = XCoreModeling.GetEntityEntityDistance(brick1, brick2) print(f"Distance brick1-brick2: {res[0].Distance}") print(f"Closest point on brick1: {res[0].ClosestPosition}") print(f"Closest point on brick2: {res[1].ClosestPosition}")

    or distance to a point:

    brick = XCoreModeling.CreateSolidBlock(Vec3(0), Vec3(1)) res = XCoreModeling.GetEntityEntityDistance(brick, Vec3(3)) print(f"Distance brick-point: {res.Distance}") print(f"Closest point on brick: {res.ClosestPosition}")

    For geometry that has end-points or corners, you could extract the vertices and again use distance wrt some other point as a way to write a script.

    edge = XCoreModeling.CreateEdge(Vec3(0), Vec3(1)) vertices = XCoreModeling.GetVertices(edge) assert len(vertices) == 2 for v in vertices: print(v.Position) brick = XCoreModeling.CreateSolidBlock(Vec3(0), Vec3(1)) vertices = XCoreModeling.GetVertices(edge) assert len(vertices) == 8
  • How to create solid circle ie. with surface ?

    Solved Python API
    4
    0 Votes
    4 Posts
    377 Views
    brynB

    @dbsim4 regarding your "Update", I am not sure I understand the context. Are you trying to assign the circle loop as an edge source?

  • 0 Votes
    2 Posts
    351 Views
    R

    I eventually configured Sim4Life on a Cloup GPU workstation (paperspace.com). The workstation has an Intel Xeon E5-2630 v3 processor, 16 virtual cores, 90 GB of RAM, and two NVIDIA Ampere A6000 GPUs, each with 48 GB of GPU memory. For Exablate Neuro transducers (220 and 670 kHz) simulations, the workstation improved simulation speed from about 200 Mcell/s with an 8-core OpenMP configuration, to about 12000 Mcells/s with two GPUs.

    The workstation allows simulations (1449x1149x816 grid, 200 periods, 670 kHz, 0.22 mm max step for 10 points per wavelength) in about 40 minutes with Fourier-domain sensor recordings and about 4 hours with Time-domain sensor recordings. Time-domain simulations seem only compatible with a single GPU, while Fourier-domain sensor simulations can use both GPUs. Also, the Fourier domain field sensor recordings create simulations that look unstable (or less accurate) compared to the time-domain field sensor recordings, with all other factors equal. Only the time-domain simulations have readily matched previous studies, but the simulation time is still too long.

    Can the time-domain sensor acoustic simulation be run on multiple GPUs? Also, most of the time for Fourier-domain simulations is spent "allocating memory for the voxel array." Is there a way to configure the GPU to preallocate memory or another way to reduce the amount of time to distribute the array memory?
  • Acoustic simulation

    Simulations & Solvers
    2
    0 Votes
    2 Posts
    198 Views
    M

    We use standard units in the acoustic solver, which means we're solving the wave equation in pressure which has units of Pa.

    Note though that the acoustic equation is Linear (careful, this doesn't apply to the nonlinear solver), which means that you can arbitrarily scale the input signal by a scalar and the output (in pressure) will be exactly the same and scaled by that same constant. (You need to be careful when you consider energy related quantitites which are something something pressure squared)

    Essentially, find the scaling factor between pressure and voltage (assuming linearity), then run your simulation with an arbitritrary amplitude and then scale the pressure output.

  • Import modulation file

    Analysis & Postprocessing
    10
    0 Votes
    10 Posts
    707 Views
    M

    Really sorry, I honestly don't understand - I don't know what you mean with modulation and I'm not sure what you mean with using matlab and what input file you are exactly referring to. Maybe some screenshots will help, otherwise maybe contact support

  • 0 Votes
    3 Posts
    362 Views
    M

    Thank you! That helps a lot.

  • Activation code not accepted

    Installation & Licensing
    7
    0 Votes
    7 Posts
    860 Views
    M

    The problem has been resolved, thank you.

  • Locked items inside Virtual Population

    Anatomical Models
    2
    0 Votes
    2 Posts
    307 Views
    brynB

    You can drag the entire group onto the simulation. The surfaces are tagged, and will be assigned to the correct material properties automatically.

    The reason for the locks is to prevent users from deleting individual surfaces, or editing them in some way. This would break the poser functionality. If you are bothered by this, or don't need to change the posture of the model, you can always select the bone mesh system and run "Clone As Static" in the context menu.

    Youtube Video

  • ViP Shells for Sim4Life Users

    Anatomical Models
    1
    0 Votes
    1 Posts
    396 Views
    No one has replied
  • Export surface from Iso-Surface Viewer to Model

    CAD Modeling
    1
    1 Votes
    1 Posts
    200 Views
    No one has replied
  • How to scale imported CAD model in 7.2?

    Solved CAD Modeling
    4
    1 Votes
    4 Posts
    430 Views
    brynB

    Yes, you cannot directly stretch a group. However, you can select multiple (non-group) entities and stretch them.
    The easiest is to press "Ctrl+A" (Select All), which will select all visible entities (excluding the groups), and then stretch those.

    You can also use the Python API.

    import XCoreMath import XCoreModeling Vec3 = XCoreModeling.Vec3 scaling0 = XCoreMath.Scaling(Vec3(2.0)) scaling1 = XCoreMath.Scaling(Vec3(1.2, 0.9, 2.0)) scaling2 = XCoreMath.Scaling(Vec3(1.2, 0.9, 2.0), origin=Vec3(120, 10, 34)) entities = XCoreModeling.GetActiveModel().SelectedEntities for e in entities: e.ApplyTransform(scaling0)

    the different scalings are

    uniform scaling non-uniform scaling non-uniform scaling wrt to the (non-zero) origin=(120, 10, 34)

    Youtube Video

  • Import Voxels - How to Assign Materials?

    Solved Simulations & Solvers
    6
    0 Votes
    6 Posts
    432 Views
    D

    @dbsim4

    Answering my own question:

    In the Modelling tab (not simulation), each imported label/voxel type can be assigned a material in the Controller window.

    Auto Assign seems to work decently well if the materials in the file are well named.

    Probably should be done before dragging the model into the Simulation.