cmelab / polybinder

Initialization of thermoplastic polymer systems to simulate thermal welding
GNU General Public License v3.0
2 stars 5 forks source link

Add a carbon fiber initialization scheme #88

Open chrisjonesBSU opened 2 years ago

chrisjonesBSU commented 2 years ago

We need a way to initialize systems and run simulations that will help us model carbon fiber wetting. I have an mbuild function that will generate orthogonal sheets of graphene layers that we can use in the simulation volume. We'd have to make sure to adjust box sizes in a way that account for the desired density of the polymer melt (i.e. expand the box by the thickness of the fiber sheets).

chrisjonesBSU commented 2 years ago

Here is a snippet that can be used to create layers of graphene sheets:

class GrapheneSheet(mb.Compound):
    def __init__(self, xlen, ylen, num_layers):
        super(GrapheneSheet, self).__init__()
        self.xlen = xlen
        self.ylen = ylen
        self.num_layers = num_layers

        spacings = [0.425, 0.246, 0.35]
        angles = [90, 90, 90]
        points = [[1/6,0,0],[1/2,0,0],[0, 0.5, 0],[2/3, 1/2, 0]]
        lattice = mb.Lattice(
            lattice_spacing=spacings, angles=angles, lattice_points={'A' : points}
        )
        c = mb.Compound(name='C')
        self.layer = lattice.populate(compound_dict={'A' : c}, x=xlen, y=ylen, z=num_layers)
        self.layer.freud_generate_bonds("C", "C", dmin=0.10, dmax=0.145)

    def visualize(self):
        self.layer.visualize().show()