seapipy.surface_evolver.SurfaceEvolver

class seapipy.surface_evolver.SurfaceEvolver(vertices: dict, edges: dict, cells: dict, density_values: dict, volume_values: dict, polygonal: bool = True)

Bases: object

Class to interact with the Surface Evolver file buffer.

Parameters:
  • vertices (dict) – Vertices in the tesselation

  • edges (dict) – Edges in the tesselation

  • vertices – Cells in the tesselation

  • density_values (dict) – Initial line tensions for the edges

  • volume_values (dict) – Initial target areas in the tesselation

  • polygonal – Whether to use polygons or allowed curved edges

add_refining_triangulation(how_many: int = 1) StringIO

Add a mesh refinement using the r Surface Evolver function, at the end of the Surface Evolver slate

Parameters:

how_many (int) – Number of times the refinement should be done

Returns:

Current Surface Evolver slate

Return type:

io.StringIO()

add_t1_swaps(max_size: float = 0.1) StringIO

Add check for T1 swaps using the Surface Evolver t1_edgeswap function

Parameters:

max_size (float) – Maximum size of interfaces before making a T1 swap

Returns:

Current Surface Evolver slate

Return type:

io.StringIO()

add_vertex_averaging(how_many: int = 1) StringIO

Add vertex averaging using the V Surface Evolver function, at the end of the Surface Evolver slate

Parameters:

how_many – Number of times the averaging should be done

Returns:

Current Surface Evolver slate

Return type:

io.StringIO()

change_line_tensions(new_tensions: dict) StringIO

Set new densities for the system’s membranes. Setting is done using the dictionary key as membrane id and the value as the new tension

Parameters:

new_tensions

Returns:

Current Surface Evolver slate

Return type:

io.StringIO

change_scale(new_scale: float) StringIO

Change the scale of the Surface Evolver simulation at the end of the Surface Evolver slate

Parameters:

new_scale (float) – Numerical value of the new scale

Returns:

Current Surface Evolver slate

Return type:

io.StringIO()

evolve_relaxing(number_of_times: int = 1, steps: int = 1, max_size: float = 0.1) StringIO

Evolve the system a fixed number of steps and perform T1 swaps after a definite number of times

Parameters:
  • number_of_times (int) – Number of times the evolution plus T1 swaps happen

  • steps (int) – Number of evolution step for all iterations

  • max_size (float) – Maximum size allowed for membranes before a T1 happens

Returns:

Current Surface Evolver slate

Return type:

io.StringIO

evolve_system(steps: int = 1) StringIO

Add evolution function using the Surface Evolver go function

Parameters:

steps (int) – Number of steps to evolve for

Returns:

Current Surface Evolver slate

Return type:

io.StringIO()

generate_fe_file() StringIO

Generate the initial Surface Evolver slate to write into

Returns:

Initialized Surface Evolver slate

Return type:

io.StringIO()

initial_relaxing(evolve_step: int = 2500, averaging: int = 100) StringIO

Initial standard relaxing with vertex averaging and scale change followed by evolution

Parameters:
  • evolve_step (int) – Number of steps to evolve at each scale chnage

  • averaging – Number of vertex averagings to perform

Returns:

Current Surface Evolver slate

Return type:

io.StringIO

save_fe_file(file_name: str) bool

Save the Surface Evolver slate to disk

Parameters:

file_name

Returns:

Success state of the saving

Return type:

bool

save_one_step(output_directory: str, file_name: str) StringIO

Add a savepoint to the Surface Evolver slate using the sprintf function

Parameters:
  • output_directory (str) – Folder to save the file into

  • file_name (str) – Name of the file to be saved

Returns:

Current Surface Evolver slate

Return type:

io.StringIO