
# ---------------------------------------------
# Monomer Molecule 1
# ---------------------------------------------

pvc_monomer = nlread('PVC_Monomer.hdf5')[-1]
pmma_monomer = nlread('PMMA_Monomer.hdf5')[-1]

# Create the polymer sequence object
polymer_sequence_pvc = PolymerSequence(
    monomer_configurations=[pvc_monomer],
    number_of_monomers=20,
    number_of_chains=10,
    tactic_ratio=0.5,
)

# Create the polymer sequence object
polymer_sequence_pmma = PolymerSequence(
    monomer_configurations=[pmma_monomer],
    number_of_monomers=20,
    number_of_chains=10,
    tactic_ratio=0.5,
)

# -------------------------------------------------------------
# Polymer Monte Carlo Builder
# -------------------------------------------------------------
potential_builder = OPLSPotentialBuilder(
    include_electrostatic=False
)

polymer_builder = PolymerMonteCarloBuilder(
    polymer_sequence=[polymer_sequence_pvc, polymer_sequence_pmma],
    density=1.3000*gram/cm**3,
    monte_carlo_temperature=300.0*Kelvin,
    angle_sampling_points=20,
    repack_molecules=False,
    potential_builder=potential_builder
)
bulk_configuration = polymer_builder.buildPolymerConfiguration()
nlsave('PVC_PMMA_Polymer.hdf5', bulk_configuration)

# -------------------------------------------------------------
# Force Capped Equilibration
# -------------------------------------------------------------
equilibration_method = ForceCappedEquilibration(
    temperature=300.00*Kelvin,
    md_steps_per_force_capped_simulation=40000,
    md_time_step=0.50*fs,
    force_capped_simulations=4,
    starting_factor=1.040,
    ending_factor=0.800,
)
bulk_configuration = equilibration_method.runEquilibration(bulk_configuration)
nlsave('PVC_PMMA_Polymer.hdf5', bulk_configuration)
