Skip to content

Sim4Life

678 Topics 2.2k Posts

Subcategories


  • Installing Sim4Life and configuring licenses

    34 120
    34 Topics
    120 Posts
    G
    Did you do one of the following: • Define the FlexNet environment variable FLEXID_LIBRARY_PATH to point to the location of the dongle shared object, libhasp_linux_x86_64.so. • Define the system environment variable LD_LIBRARY_PATH to point to the location of the dongle shared object libhasp_linux_x86_64.so. ? Could you try to send us the output of lmhostid -flexid? that command should return the dongle id. You can also access the dongle firmware - if it is correctly installed - via the loopback address. On a browser, go to http://localhost:1947/ you should see the characteristics of the dongle. Let us know if it works.
  • Working with CAD models

    60 199
    60 Topics
    199 Posts
    L
    Hello Sim4Life community, I'm trying to create a Petri dish model with a liquid solution, but I'm consistently failing with the Boolean Subtract operation. Goal: Petri Dish: Outer R=18mm, H=11mm. Needs a 1mm solid bottom and an open top. Solution: R=17mm, H=10mm. Needs to fill the Petri's cavity, flush with the top edge. Intended Object Setup (Z-ranges): Outer Cylinder: Base at Z=0mm, Top at Z=11mm. Inner Cylinder (for subtraction): Base at Z=1mm, Top at Z=10.9mm (Height=9.9mm). Solution Cylinder: Base at Z=1mm, Top at Z=11mm. My Problem: When performing Boolean > Subtract (selecting Outer Cylinder first, then Inner Cylinder): The result is either completely empty in 3D space or a flat "disk" (no bowl shape). This happens despite the Sim4Life tutorial stating the operation subtracts from the first selected object. Key Questions: Why does Subtract fail like this (empty/disk)? Is there a common issue with precisely aligned surfaces (e.g., Z=10.9mm vs Z=11mm for cylinder tops)?
  • Working with models from the Virtual Population

    57 270
    57 Topics
    270 Posts
    brynB
    I would like to highlight our new jupyter notebooks released in Sim4Life 9.0 (18820) demonstrating how to setup simulations for personalized modeling, starting from medical image data (MRI or CT). You can find them under Help -> Examples, tutorials H, J and K. [image: 1751530347812-40ce376e-f66a-4cef-9f92-47a5f23f41be-image.png] These new tutorials show how to import medical images run automatic segmentation of the trunc extract surface models from the labelfields assign material tags to simplify automatic assignment of material properties in the simulations extracting anatomical landmarks on the skin for placing electrodes setting up a simulation and running it We would love to get constructive feedback and suggestions. In our experiments the segmentation seems quite robust, but errors may occur (this is not a clinical tool). We try to fix these errors in the post-processing, but there are most certainly cases where the post-processing may do something unintended (like add skin at the border of the field of view, where there should be none). If you have a need for making this robust for your data, contact us at virtualpopulation@itis.swiss so we can discuss.
  • FDTD, Low-Frequency, Neuron, Mode-Matching, Flow, Acoustics, etc...

    244 734
    244 Topics
    734 Posts
    C
    Hi In Sim4Life the tissue properties are provided as a single values. However, the IT’IS website provides supplemental information on the tissue properties. In addition to the average value, you can find the standard deviation, minima and maxima. Low Frequency (Conductivity) » IT'IS Foundation](https://itis.swiss/virtual-population/tissue-properties/database/low-frequency-conductivity/)
  • Postprocessing results

    110 321
    110 Topics
    321 Posts
    brynB
    A user recently asked me: I have a field distribution from an EM solver in the brain. I would like to mask the field in the left amygdala, but I my model does not separate the left/right amygdala. How can this be done? There are different approaches, but here are some suggestions: Split the amygdala in the model BEFORE running the simulation. You can select the amygdala and use the Mesh Tools -> Separate Meshes. Assign the same material property to both (left/right) solid regions and then AFTER running the simulation mask e.g. just the left amygdala. You already have run the simulation. Mask the field to remove everything outside the amygdala, Create a sphere around the left amygdala (e.g. called "Sphere Amygdala_left" Mask the masked field with only the sphere region (by dragging it onto the masking list). This will remove everything outside the sphere, i.e., the field in the right amygdala. Here is the second option in code: simulation_extractor = simulation.Results() # Add a EmSensorExtractor em_sensor_extractor = simulation_extractor["Overall Field"] em_sensor_extractor.FrequencySettings.ExtractedFrequency = u"All" document.AllAlgorithms.Add(em_sensor_extractor) # Add a FieldMaskingFilter inputs = [em_sensor_extractor.Outputs["EM E(x,y,z,f0)"]] field_masking_filter = analysis.core.FieldMaskingFilter(inputs=inputs) field_masking_filter.UpdateAttributes() for id, name in zip(field_masking_filter.MaterialIds(), field_masking_filter.MaterialNames()): field_masking_filter.SetMaterial(id, name == "Amygdala") field_masking_filter.UpdateAttributes() document.AllAlgorithms.Add(field_masking_filter) # Add a second FieldMaskingFilter inputs = [field_masking_filter.Outputs["EM E(x,y,z,f0)"]] field_masking_filter_2 = analysis.core.FieldMaskingFilter(inputs=inputs) field_masking_filter_2.UpdateAttributes() for mat in field_masking_filter_2.MaterialIds(): field_masking_filter_2.SetMaterial(mat, False) field_masking_filter_2.SetEntities([model.AllEntities()["Sphere Amygdala_left"]]) field_masking_filter_2.UpdateAttributes() document.AllAlgorithms.Add(field_masking_filter_2) # Add a SliceFieldViewer inputs = [field_masking_filter_2.Outputs["EM E(x,y,z,f0)"]] slice_field_viewer = analysis.viewers.SliceFieldViewer(inputs=inputs) slice_field_viewer.Data.Mode = slice_field_viewer.Data.Mode.enum.QuantityComplexModulus slice_field_viewer.Data.Component = slice_field_viewer.Data.Component.enum.ComponentsAll slice_field_viewer.Slice.Index = 23 slice_field_viewer.Update() document.AllAlgorithms.Add(slice_field_viewer) https://youtu.be/J2dERMnzNoA
  • Scripting interface for Sim4Life

    137 430
    137 Topics
    430 Posts
    K
    The problem has been resolved! Thank you for your assistance!
  • Running Sim4Life over a network

    4 7
    4 Topics
    7 Posts
    ofliO
    Hi, Please allow me to share here the response we sent you via the Sim4Life support email so that other users can benefit from your questions. The default machine provides 500GB of storage, and you are running out of space for this project. If your results require more than 500GB, consider upgrading to a higher-tier machine with greater storage capacity. Alternatively, you could reduce the size of your simulation project by splitting it into multiple smaller simulations. This would allow you to continue using the default tier. Additionally, you might optimize your sensor settings, such as by creating smaller sensors and recording data for specific volumes of interest, rather than using an Overall Field sensor.
  • Everytime I'm doing a too complex simulation the file is lost

    5
    0 Votes
    5 Posts
    2k Views
    L
    I am using Sim4Life 6.2.1.4972. It happened once when I've had put a high "maximum number of samples" in the time domain (200 I think) with the acoustic head tutorial that I changed a bit, by putting 2 transducers instead of 1. Another time it was weird because it happened with a SEFT targeting a square of skin, which was rather simple but it did crash again. My simulation was probably wrong in a way, but it didn't throw and error and just stopped. But now that I am applying @gbgbha advices, it is fine :) and thanks for the tip ! I'll try for the file that I lost
  • Why does TRP exceed input power(Antenna)?

    2
    0 Votes
    2 Posts
    943 Views
    SylvainS
    The TRP is computed in a different way than the input power. Both ways are mathematically correct and would both be "exact" if there were no numerical errors. In any FDTD simulation, however, there are spatial (finite grid) or temporal (finite time step) discretization error. What you are seeing in this half-wave dipole example, is that those discretization errors are larger than the precision you would require to distinguish TRP from input power (because the radiation efficiency is very high in this case, there is almost no difference between TRP and input power). To solve this "problem", either you accept that the simulation results are accurate enough for your needs (the warning is a simple consistency check) or you increase the precision of the simulation. You can do so by increasing the grid resolution, the overall convergence level and the resolution of the far-field sensor. This will be computationally expensive, though. To help you understand, you could try to add some lossy media in your (coarse) simulation (e.g. place the dipole next to a phantom or any other dielectric). The simulation will not be more precise, but the numerical errors will be less "obvious" because they will be dwarfed by the losses occurring in the dielectric. The TRP will be lower than the input power and the warning will not be triggered. I hope this helps.
  • The effect of electromagnetic field on the temperature of human tissues

    1
    0 Votes
    1 Posts
    475 Views
    No one has replied
  • S4L is unable to read and load my project

    18
    0 Votes
    18 Posts
    5k Views
    ali.oezenA
    THank you very much for the hints.
  • How to export images from Sim4Life Analysis Results

    image export png jpeg
    5
    0 Votes
    5 Posts
    2k Views
    M
    That works! If it's for a 2D plot, you can always right click and export the data to an excel or csv file and then work with that if you'd prefer
  • Optimal performance

    3
    0 Votes
    3 Posts
    867 Views
    SylvainS
    The full version has the same performance as the Light version: it can just deal with bigger problems. Note that the low-frequency solvers are not GPU-accelerated, so if you are using that the GPU is anyway not used. If you are using the FDTD solver instead, it is accelerated by the GPU but its performance might be severely affected by the frequency of your simulation (the lower the frequency, the more iteration the FDTD method has to do in order to reach convergence). If you are in a regime where the quasi-static approximations hold, I would strongly advise you to use the LF solvers.
  • Editing the excitation signal

    2
    0 Votes
    2 Posts
    675 Views
    SylvainS
    I think your signal was fine, but your settings for the Field Sensor need to be changed.
  • Invalid Bounding Box Error

    2
    0 Votes
    2 Posts
    645 Views
    SylvainS
    2kHz will probably not be feasible in most propagating media, because the wavelength will simply be too large compared to the grid resolution your geometry requires (leading to unreasonably large time steps). You might want to check for e.g. what your grid look like, especially the padding at the boundaries of your computational domain.
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    2 Views
    No one has replied
  • CEM43 / Arrhenius Thermal Damage

    1
    0 Votes
    1 Posts
    383 Views
    No one has replied
  • how to model a bent wire with a fixed length?

    10
    1 Votes
    10 Posts
    2k Views
    S
    Thanks for the code. Actually I need to model some wires with the fixed length, with one part in the brain in different spots and the remaining out of the brain, It takes a long time to model each one and I'm looking for a way to make them in a shorter time. Thanks.
  • grid resolution of wire and insulation

    3
    0 Votes
    3 Posts
    1k Views
    S
    Thanks for your reply.