Skip to content

Simulations & Solvers

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

237 Topics 703 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!!
  • 0 Votes
    3 Posts
    354 Views
    ofliO
    Dear Ali, It looks like the path to iSolve is not set correctly. Please follow the steps below: Open Ares on the machine where Sim4Life is installed Click on the blue cross at the end of the line labeled "Paths to the iSolve solver executables." This will open a pop-up window. (see the image below) If the list of solvers is empty or the one you intend to use is not listed, simply add the path to the relevant solver. Restart Sim4Life. [image: 1724225171829-aresisolve-resized.png]
  • Cannot place line as a voltage sensor

    4
    0 Votes
    4 Posts
    540 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
    632 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
    747 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

    Unsolved
    1
    0 Votes
    1 Posts
    281 Views
    No one has replied
  • How to set up the source when using a coaxial feed for a microstrip form antenna?

    Unsolved
    5
    1 Votes
    5 Posts
    515 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
    424 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
    340 Views
    L
    Thanks for your reply
  • Grid Setting

    3
    0 Votes
    3 Posts
    356 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
    256 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
    365 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

    Solved simulation
    3
    0 Votes
    3 Posts
    349 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
    295 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
    346 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
    164 Views
    No one has replied
  • FDFD solver tutorials

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

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

    2
    0 Votes
    2 Posts
    229 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
    305 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
    277 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.