• 1 Votes
    39 Posts
    1k Views

    Hi Bryn,

    I would like to ask a question regarding posing. My aim is to detect the variation in bone position from the skin in different poses (hypothesis being: as the soft tissues deform, the bone wont always be at the same position wrt the skin). I currently have 8 antennas placed around the skin which are supposed to mimic wearable antennas and I would like to move these antennas along with the pose.

    But if I link these antennas to the bone using "link-parent tool", the bone is always at the same location wrt to the bone irrespective of the pose. But I cannot link the antennas wrt to the skin as the antennas dont move with the pose.

    How can I do this? I would like the antennas which are placed around the skin to similar to the skin rather than the bone? Based on the first video in this chain, triangular meshes can be posed similar to the body. If I convert the antennas to meshes and then pose it, will I be getting the same issue i.e the bone is always at the same location wrt to the antennas?

    Thanks

  • 0 Votes
    1 Posts
    73 Views
    No one has replied
  • 0 Votes
    2 Posts
    106 Views

    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.

  • 0 Votes
    2 Posts
    122 Views

    short answer: you can run most of the Python API without opening the Sim4Life user interface.

    you have different options

    you can call Sim4Life.exe --run your_script.py you can write scripts and run them using the python.exe in the Sim4Life installation you can create a virtual environment with the Sim4Life packages, e.g. "C:\Program Files\Sim4Life_6.2.2.6592\Python\python.exe" -m venv .venv --system-site-packages and then use the python from this venv to run your script

    The first option opens Sim4Life, runs the script, and closes Sim4Life again. It probably is the easiest option to work robustly.

    The latter two options run without the UI and by default without an application. In most cases, you will need an application though (e.g. the Application initializes the active model, which is needed for modeling). For Python scripting without the UI you can create a console application. We do this e.g., to run Python tests without opening the UI (which is slower). To create a console application you can usually call:

    import XCore XCore.GetOrCreateConsoleApp() # now you can do some stuff import s4l_v1 as s4l sphere = s4l.model.CreateSolidSphere(s4l.model.Vec3(0.0), 1.0)
  • 0 Votes
    3 Posts
    137 Views

    @bryn Thank you Bryn.
    Managed to find a version that wasn't corrupted!
    Hope you have a nice day 🙂

  • 2 Votes
    1 Posts
    84 Views
    No one has replied
  • 1 Votes
    16 Posts
    1k Views

    @halder Thank you for your response. I want the total current of 1 mA flowing between my two electrodes. In this case, I should put the target value as (1 mA/area of the plane I have drawn between two electrodes)?
    since my plane area is 182mm*220mm, then I should select the target value to be 0.024975 A/m2. Is this the correct approach?

  • 0 Votes
    4 Posts
    128 Views

    Thanks Ofi. How can I fix this or is this something I need to account for?

  • tutorial not running

    Simulations & Solvers
    1
    0 Votes
    1 Posts
    64 Views
    No one has replied
  • FDFD solver tutorials

    Simulations & Solvers
    1
    0 Votes
    1 Posts
    56 Views
    No one has replied
  • 0 Votes
    1 Posts
    82 Views
    No one has replied
  • 0 Votes
    1 Posts
    77 Views
    No one has replied
  • 0 Votes
    2 Posts
    100 Views

    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.
  • 0 Votes
    2 Posts
    158 Views

    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]
  • Line fed slot antenna

    CAD Modeling
    4
    0 Votes
    4 Posts
    150 Views

    Then you can keep the substrate as it is and translate the edge source (polyline) along the microstrip line until it also touches the ground plane (keeping it always axis-aligned).

  • 1 Votes
    2 Posts
    152 Views

    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.

  • 0 Votes
    2 Posts
    155 Views

    The following example for a 2-port simulation combiner should help.

    i = 0 for channel in em_multi_port_simulation_combiner.GetChannelWeights(): power = [1.0, 2.0] phase = [45, 90] em_multi_port_simulation_combiner.SetChannelWeight(channel, power[i], phase[i]) i += 1 em_multi_port_simulation_combiner.UpdateAttributes() em_multi_port_simulation_combiner.Update() document.AllAlgorithms.Add(em_multi_port_simulation_combiner)
  • 0 Votes
    2 Posts
    134 Views

    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
    113 Views
    No one has replied
  • 1 Votes
    7 Posts
    404 Views

    Thank You, It really works.