ConvexPolygon

class hoomd.hpmc.integrate.ConvexPolygon(default_d=0.1, default_a=0.1, translation_move_probability=0.5, nselect=4, kT=1.0)

Bases: HPMCIntegrator

Convex polygon hard particle Monte Carlo integrator.

Parameters:
  • default_d (float) – Default maximum size of displacement trial moves [length][\mathrm{length}].

  • default_a (float) – Default maximum size of rotation trial moves [dimensionless][\mathrm{dimensionless}].

  • translation_move_probability (float) – Fraction of moves that are translation moves.

  • nselect (int) – Number of trial moves to perform per particle per timestep.

  • kT (hoomd.variant.variant_like) – Temperature set point [energy][\mathrm{energy}].

Perform hard particle Monte Carlo of convex polygons. The shape SS of a convex polygon includes the points inside and on the surface of the convex hull of the vertices (see shape). For example:

Example of a convex polygon with vertex labels.

Important

ConvexPolygon simulations must be performed in 2D systems.

See also

Use SimplePolygon for concave polygons.

Wall support.

ConvexPolygon supports no hoomd.wall geometries.

Examples:

mc = hoomd.hpmc.integrate.ConvexPolygon(default_d=0.3, default_a=0.4)
mc.shape["A"] = dict(
    vertices=[
        (-0.5, -0.5),
        (0.5, -0.5),
        (0.5, 0.5),
        (-0.5, 0.5),
    ]
)
print("vertices = ", mc.shape["A"]["vertices"])

Members inherited from AutotunedObject:

property kernel_parameters

Kernel parameters. Read more...

property is_tuning_complete

Check if kernel parameter tuning is complete. Read more...

tune_kernel_parameters()

Start tuning kernel parameters. Read more...

Members inherited from HPMCIntegrator:

a

Maximum size of the rotation trial moves. Read more...

d

Maximum size of displacement trial moves Read more...

interaction_matrix

Set which types interact with other types. Read more...

translation_move_probability

Fraction of moves to be selected as translation moves. Read more...

nselect

Number of trial moves to perform per particle per timestep. Read more...

translate_move_dimensions

Dimensionality for translation moves. Read more...

kT

Temperature set point. Read more...

property counters

Trial move counters. Read more...

property external_energy

Total external energy contributed by all external potentials. Read more...

property external_potentials

External potentials to apply. Read more...

property map_overlaps

List of overlapping particles. Read more...

property mps

Number of trial moves performed per second. Read more...

property overlaps

Number of overlapping particle pairs. Read more...

property pair_energy

Total potential energy contributed by all pair potentials. Read more...

property pair_potentials

Pair potentials to apply. Read more...

property rotate_moves

Count of the accepted and rejected rotate moves. Read more...

property translate_moves

Count of the accepted and rejected translate moves. Read more...

Members defined in ConvexPolygon:

shape

The shape parameters for each particle type. The dictionary has the following keys.

  • vertices (list [tuple [float, float]], required) - vertices of the polygon [length][\mathrm{length}].

    • Vertices MUST be specified in a counter-clockwise order.

    • The origin MUST be contained within the polygon.

    • Points inside the polygon MUST NOT be included.

    • The origin centered circle that encloses all vertices should be of minimal size for optimal performance.

  • ignore_statistics (bool, default: False) - set to True to ignore tracked statistics.

  • sweep_radius (float, default: 0.0) - Ignored, but present because ConvexPolygon shares data structures with ConvexSpheropolygon [length][\mathrm{length}].

Warning

HPMC does not check that all vertex requirements are met. Undefined behavior will result when they are violated.

Type:

TypeParameter [particle type, dict]

property type_shapes

Description of shapes in type_shapes format.

Example

>>> mc.type_shapes()
[{'type': 'Polygon', 'sweep_radius': 0,
  'vertices': [[-0.5, -0.5], [0.5, -0.5], [0.5, 0.5], [-0.5, 0.5]]}]

(Loggable: category=”object”)

Type:

list[dict]