Skip to content

Python API

Scripting interface for Sim4Life

137 Topics 428 Posts
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    8 Views
    No one has replied
  • read output files

    3
    0 Votes
    3 Posts
    839 Views
    M
    solved with h5py read : import h5py with h5py.File(fname,'r') as hdf: FieldGroups=hdf['FieldGroups'] keygroup = list(FieldGroups.keys()) valField = FieldGroups[keygroup[0]] AllFields = valField['AllFields'] EMPotential = AllFields['EM Potential(x,y,z,f0)'] EMPotentialObject = EMPotential['_Object'] AdditionalFieldDataCollection = EMPotentialObject['AdditionalFieldDataCollection'] Snapshots = EMPotentialObject['Snapshots'] Potential = Snapshots['0']['comp0'] #(n, m, k, 2) numpy array PotentialData = Potential[()] ========== this can be plotted import pyvista as pv
  • How to export voxel data using python API?

    3
    0 Votes
    3 Posts
    948 Views
    M
    @montanaro I've tried it and it worked. Thank you very much!
  • one document with many simulations

    5
    0 Votes
    5 Posts
    973 Views
    M
    can you supply some code example ? thanks
  • Masking entities in python

    6
    0 Votes
    6 Posts
    1k Views
    brynB
    @Spuky sorry, I guess the legacy code was confusing: masking_filter = s4l.analysis.core.FieldMaskingFilter() masking_filter.SetInputConnection(0, J_port) I edited the original answer to use the current API. The J_port was the output port for the J(x,y,z,f0) field.
  • Deleting Entities by Name

    3
    0 Votes
    3 Posts
    679 Views
    E
    @AntoninoMC thanks, that worked perfect!
  • Delete Simulation and Results

    13
    0 Votes
    13 Posts
    3k Views
    L
    Hmm I am not sure I understand. Is it possible to share more of your code and explain exactly what is not working? I use the lines of code you posted regularly and it works just fine.
  • How to Change Material Properties with Python?

    Solved emfdtd python material python api
    5
    1 Votes
    5 Posts
    1k Views
    M
    Mesh_material = sim.AddMaterialSettings(themesh(fromstl)) Mesh_material.Name = yourname Mesh_material.ElectricProps.Conductivity = v # S/m
  • What is the proper workflow for generating unstructured/multidomain meshes?

    Solved
    2
    0 Votes
    2 Posts
    465 Views
    D
    Nevermind, I found example code in the "tutorial_emlf_unstructured_neuron_electroceuticals.py" example file, see below: def CreateMesh(): """ Creates a Multidomain Mesh with predefined priorities between domains and specified global and local options """ sel=.05 # Suface Edge Length mel=.002 # Min Edge Length #create multi-domain mesh global_opt = xcm.GlobalUnstructuredMeshingOptions() global_opt.SurfaceEdgeLength = sel global_opt.MinEdgeLength = mel # Gets all the entities in the folder 'Nerve_Model' entities=s4l.model.AllEntities()['Nerve_Model'].Entities local_opt_dict={} for ent in entities: local_opt = xcm.LocalUnstructuredMeshingOptions() print((ent, ent.Name)) if 'Saline' in ent.Name : local_opt.Priority=0 elif 'Silicone' in ent.Name : local_opt.Priority=1 elif 'Electrode' in ent.Name : local_opt.Priority=2 elif 'Nerve' in ent.Name : local_opt.Priority=3 elif 'Interstitial' in ent.Name : local_opt.Priority=4 elif 'Connective' == ent.Name : local_opt.Priority=5 elif 'Connective_' in ent.Name : local_opt.Priority=5 elif 'Blood' in ent.Name : local_opt.Priority=6 elif 'Fascicle' in ent.Name : local_opt.Priority=7 local_opt_dict[ent]=local_opt print((local_opt.Priority)) # Creates an unstructured mesh on the domains using the defined options mesh = xcm.GenerateUnstructuredMesh(entities, global_opt, local_opt_dict) return I did have a followup, how do we optimize the surface edge length and minimum edge lengths?
  • cant assign entities

    modeling entities
    3
    0 Votes
    3 Posts
    821 Views
    M
    really thanks this is direction of solution what i did with friend Mesh2 = s4l.model.Import(r'C:\sintetic data\bones.stl')[0] so now Mesh2 is not tuple and has its own name bones meanwhile i write all in one script without functions so i dont need realy the entities as in the example of 2 plates supplied with sim4life ...
  • How to Suppress an analysis exporter prompt in the Console Window

    2
    0 Votes
    2 Posts
    443 Views
    SylvainS
    Hi, unfortunately most algorithms (this one included) do not have the option to mute their info messages. So I don't think there is a way to suppress this kind of output in the console. As for the possible options for the Update() function, there is only one: overwrite=True/False, to determine the behavior of the exporter if the target file already exists. The Update() function is the equivalent of clicking the Refresh button in the algorithm in the GUI: it triggers the algorithm. If the API Browser is lacking, you can find more information (like the function signature) by typing e.g. help(excel_exporter.Update) in the Console.
  • Model To Python Script

    1
    0 Votes
    1 Posts
    343 Views
    No one has replied
  • S4L v6.0 python pip install tkinter

    9
    0 Votes
    9 Posts
    2k Views
    B
    @jasper-goethals hei im new here, for sim4life Light v7.. still cant use Tkinter so use another module PyQt5 its not best solution but its work for me
  • Extract power balance

    3
    0 Votes
    3 Posts
    576 Views
    M
    This works indeed! Thanks a lot!
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    4 Views
    No one has replied
  • VSCode extension

    python vscode
    5
    1 Votes
    5 Posts
    1k Views
    L
    I am not sure to be honest why that was an issue for me with that specific version only, I installed the new version and it was there so problem solved!
  • Importing and exporting coordinates for an array of points

    15
    0 Votes
    15 Posts
    3k Views
    brynB
    @mkn how about you post your code. maybe somebody will show you where the bug is
  • Optimization to python

    3
    0 Votes
    3 Posts
    555 Views
    A
    @Sylvain OK, thank you for the answer.
  • Export SAR to matlab for analysis

    6
    0 Votes
    6 Posts
    2k Views
    S
    @sayimgokyar Note to myself: Press right-click on fields on output window and "refresh" button after setting up everything.
  • How to put model entities into a group using Python API?

    5
    0 Votes
    5 Posts
    909 Views
    M
    Thanks @montanaro!