Skip to content

Simulations & Solvers

FDTD, Low-Frequency, Neuron, Mode-Matching, Flow, Acoustics, etc...

236 Topics 702 Posts

Subcategories


  • FDTD, Low-Frequency, Neuron, Mode-Matching, Flow, Acoustics, etc...

    11 27
    11 Topics
    27 Posts
    N
    Hi! Can someone help me understand if it makes sense to calculate SAR statistics in a low frequency electrical stimulation (30 Hz)? Thanks!!
  • Cannot place line as a voltage sensor

    4
    0 Votes
    4 Posts
    484 Views
    B
    It looks like this is a bug. Until it is fixed, you can still add line sensors to LF simulations using the API. Here is a quick example that adds an entity named 'Lines 1' as a voltage sensor: # -*- coding: utf-8 -*- import numpy import s4l_v1.document as document import s4l_v1.materials.database as database import s4l_v1.model as model import s4l_v1.simulation.emlf as emlf import s4l_v1.units as units from s4l_v1 import ReleaseVersion from s4l_v1 import Unit # Define the version to use for default values ReleaseVersion.set_active(ReleaseVersion.version8_0) # Creating the simulation simulation = emlf.ElectroQsOhmicSimulation() # Mapping the components and entities component__plane_x = simulation.AllComponents["Plane X+"] component__plane_x_1 = simulation.AllComponents["Plane X-"] component__background = simulation.AllComponents["Background"] component__plane_y = simulation.AllComponents["Plane Y+"] component__plane_y_1 = simulation.AllComponents["Plane Y-"] component__plane_z = simulation.AllComponents["Plane Z+"] component__plane_z_1 = simulation.AllComponents["Plane Z-"] component__overall_field = simulation.AllComponents["Overall Field"] entity__line = model.AllEntities()["Lines 1"] # Adding a new VoltageSensorSettings voltage_sensor_settings = emlf.VoltageSensorSettings() components = [entity__line] simulation.Add(voltage_sensor_settings, components) # Editing AutomaticGridSettings "Automatic automatic_grid_settings = [x for x in simulation.AllSettings if isinstance(x, emlf.AutomaticGridSettings) and x.Name == "Automatic"][0] components = [entity__line] simulation.Add(automatic_grid_settings, components) # Editing AutomaticVoxelerSettings "Automatic Voxeler Settings automatic_voxeler_settings = [x for x in simulation.AllSettings if isinstance(x, emlf.AutomaticVoxelerSettings) and x.Name == "Automatic Voxeler Settings"][0] components = [entity__line] simulation.Add(automatic_voxeler_settings, components) # Update the materials with the new frequency parameters simulation.UpdateAllMaterials() # Update the grid with the new parameters simulation.UpdateGrid() # Add the simulation to the UI document.AllSimulations.Add( simulation )
  • FAILED TO INTERPOLATE EXTRACELLULAR FIELDS ONTO NEURONS

    3
    0 Votes
    3 Posts
    606 Views
    N
    To follow up on this problem just in case other people encounter similar issues, I found out that in my case this error was caused by cropping the region of interest out of the anatomical model. I cropped the Jeduk static surfaces with Planar cut as well as the nerve trajectories to preserve only the torso/chest region. As a result, from some nerve trajectories that extend beyond the region of interest and loop back into the region, multiple wires resulted from the cropping. The discontinuity in these splines caused issues in discretization which showed up in the console as a "Failed to interpolate extracellular fields onto neurons" error for me. This problem was solved by iterating through all the remaining nerve trajectories after cropping and checking using xcm.GetWires() how many wire bodies are contained in each trajectory. If there is more than one, the wire body with the max length is cloned and given the same name as the original trajectory and the problematic trajectory was deleted.
  • run two simulations on the same computer

    4
    0 Votes
    4 Posts
    707 Views
    M
    Hey there! That's a pretty powerful setup with dual GPUs! To run two simulations at the same time, you can utilize parallel computing techniques to distribute the workload across both GPUs. Since you already know how to designate GPUs for each simulation, you might want to explore frameworks like CUDA or OpenMP, which are excellent for managing parallel tasks. Ensure that your simulation software is configured to support multi-GPU operations and check its documentation for any specific settings related to concurrent simulations. Sometimes, fine-tuning the job scheduling can also help in managing simultaneous tasks more effectively. On another note, if you're interested in staying ahead with technology, check out Quantum AI. They delve into the fascinating world of quantum computing, which has the potential to transform simulation and problem-solving in groundbreaking ways. Best of luck with your simulations!
  • Impedance of tissue

    1
    0 Votes
    1 Posts
    270 Views
    No one has replied
  • 1 Votes
    5 Posts
    471 Views
    H
    @brown Thank you, I will check these things. Additionally, there are some warning messages which may help: [image: 1714906840653-7427af6d-b388-4d9a-b629-2678e1872293-image-resized.png] Is the mesh division not precise enough?
  • Running iSolve on GPU

    4
    0 Votes
    4 Posts
    391 Views
    B
    You definitely have enough memory here. It's likely that the solver could not use the device for some other reason. Can you try updating your graphics drivers?
  • Fields data extraction after MQS simulation

    3
    0 Votes
    3 Posts
    306 Views
    L
    Thanks for your reply
  • Grid Setting

    3
    0 Votes
    3 Posts
    326 Views
    brynB
    I think you can change how the steps change between gridlines with the grading option. If you have some entities that should not influence the grid set priority to zero (for those entities). Then choose the largest grid step you want for the global settings and and the smallest (0.5mm) for the arrays_grid. You should manage to control how the grid changes away from the arrays_grid.
  • "Distribute along line option". Difference in results?

    2
    0 Votes
    2 Posts
    239 Views
    H
    When using a long line as "normal" edge source, the discretization will result in one edge being the actual source and rest of the line being discretized as PEC filament. This can lead (depending on the excitation frequency, the length of the source line and the setup) to inaccuracies due to the additional capacitance introduced be the PEC filaments. An alternative that is, in most cases, a more accurate source representation is using the "Distribute Along Line" option, the source is equally distributed over all the discretized edges of a line element (see image, right). That prevents any PEC filaments and therefore makes the injection of the signal more realistic. Time delay = distance between the transmitter and receiver*sin(theta)/c where theta is the angle of antenna. I would suggest looking into antenna array literature for theoretical background on calculating this quantity.
  • 0 Votes
    3 Posts
    340 Views
    B
    If you click on Network Analysis in your Analysis tree, what is your Reference Impedance? It is set to 50 ohms by default, but you have change it based on the Input Impedance for the coil before plotting the S11 curve. Plot the complex Input Impedance. At resonance, the imaginary part will be zero (the circuit is purely resistive). So at the desired resonant mode / frequency, you should find the corresponding real value, and set this value as the reference impedance to plot |S11|. [image: 1714032407782-a7146e86-302b-43e7-9dd1-9aac7dc76ccb-image.png] [image: 1714032424033-6f536c46-f9f2-4d5a-b787-cfdb97521404-image.png] [image: 1714032432837-5730b440-37ea-4190-824e-1fac4e45155a-image.png]
  • Cannot run tutorial

    3
    0 Votes
    3 Posts
    305 Views
    J
    Thank you very much. This fixed the issue. This was related to Ares also.
  • Convergence Level in S4L

    2
    0 Votes
    2 Posts
    283 Views
    B
    A simulation can end in a couple different cases: If the specified level of convergence is reached, or if the specified number of periods are simulated. In the case of that tutorial, the simulation is set to run for 15 periods, and so it ended before a -50 dB convergence was reached. Convergence is a spectrum, and the level of convergence required for a given application is up to the user's discretion.
  • Orientation of antennas affect simulation results

    4
    0 Votes
    4 Posts
    329 Views
    V
    Thanks Ofi. How can I fix this or is this something I need to account for?
  • tutorial not running

    1
    0 Votes
    1 Posts
    154 Views
    No one has replied
  • FDFD solver tutorials

    1
    0 Votes
    1 Posts
    156 Views
    No one has replied
  • Thermal external input file

    1
    0 Votes
    1 Posts
    148 Views
    No one has replied
  • Modeling Ferrite in an FDTD Simulation

    2
    0 Votes
    2 Posts
    224 Views
    ofliO
    Hi @arc Please check "Console" window (open it via menu VIEW | Console if it is not open) to see what kind of error you are getting. The reason for failed simulation might be related to something else. You can easily test with an existing tutorial example. For example, open Dipole Antenna Tutorial, model a rectangular brick next to the dipole, clone one of the existing simulation settings and drag&drop this new brick into the simulation set its material such that rel/ Permeability o 1e4 generate grid, voxel and run to see if it also fails I hope it helps.
  • Python API for Debye dispersive model

    2
    0 Votes
    2 Posts
    287 Views
    C
    Yes, You need to import XMaterials and specify the material model to be linear dispersive, as in the following example (which should be easy to extend), where parameters for one Debye pole are assigned. import XMaterials as xm # Adding a new MaterialSettings material_settings = emfdtd.MaterialSettings() material_settings.ElectricProps.MaterialModel = material_settings.ElectricProps.MaterialModel.enum.LinearDispersive # Specify settings for dispersive poles material_settings.raw.ElectricDispersiveSettings.StartFrequency = 10.e6 material_settings.raw.ElectricDispersiveSettings.EndFrequency = 100000.e6 material_settings.raw.ElectricDispersiveSettings.Conductivity = 0. material_settings.raw.ElectricDispersiveSettings.Permittivity = 11.098 debye_pole_01 = xm.LinearDispersionPole() debye_pole_01.Active = True debye_pole_01.Type = xm.LinearDispersionPole.ePoleType.kDebye debye_pole_01[xm.LinearDispersionPole.ePoleProperty.kDebyeAmplitude] = 1.0 debye_pole_01[xm.LinearDispersionPole.ePoleProperty.kDebyeStaticPermittivity] = 22.67 debye_pole_01[xm.LinearDispersionPole.ePoleProperty.kDebyeInfinityPermittivity] = 11.098 debye_pole_01[xm.LinearDispersionPole.ePoleProperty.kDebyeDamping] = 3.234e-11 # Add dispersive poles to the Linear Electric Dispersion Viewer material_settings.raw.ElectricDispersiveSettings.Poles = [debye_pole_01]
  • Ohmic QS simulation with anisotropic material fails

    2
    1 Votes
    2 Posts
    256 Views
    B
    I suspect that this is because the grid from your LF simulation does not match the grid that you use in your isotropic and anisotropic simulations. The isotropic simulation runs fine because it does not use your cache file. The anisotropic simulation has stored those conductivity values expecting a specific grid. Try right clicking on the grid settings folder in the simulation from which you are creating your anisotropy tensor, select "Copy Grid Configuration", then "Paste Grid Configuration" on the anisotropic simulation. If you want to include features in your anisotropic simulation that you don't don't want to have simulated in your initial LF simulation, you can still include include objects in your initial simulation so that they are considered for the gridding without assigning them material properties, using them as a boundary condition or voxeling them. Just drag the object directly into the grid settings folder. That way your grid can always match.
  • FDTD simulation failure in sensor post-processing stage

    2
    0 Votes
    2 Posts
    226 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