icSolvent = ymr.InitialConditions.FromArray(pos=pos.tolist(), vel=vel.tolist()) vv = ymr.Integrators.VelocityVerlet('vv') u.registerParticleVector(pvSolvent, icSolvent) u.registerIntegrator(vv) u.setIntegrator(vv, pvSolvent) meshRbc = ymr.ParticleVectors.MembraneMesh("rbc_mesh.off") pvRbc = ymr.ParticleVectors.MembraneVector("rbc", mass=1.0, mesh=meshRbc) icRbc = ymr.InitialConditions.Membrane( [[0.5 * domain[0], 0.5 * domain[1], 0.5 * domain[2], 0.7071, 0.0, 0.7071, 0.0]] ) u.registerParticleVector(pvRbc, icRbc) prm_rbc = lina_parameters(1.0) int_rbc = ymr.Interactions.MembraneForces("int_rbc", "wlc", "Kantor", **prm_rbc, stress_free=True) if args.subStep: integrator = ymr.Integrators.SubStep('substep_membrane', substeps, int_rbc) u.registerIntegrator(integrator) u.setIntegrator(integrator, pvRbc) else: u.setIntegrator(vv, pvRbc) u.registerInteraction(int_rbc) u.setInteraction(int_rbc, pvRbc, pvRbc) bb = ymr.Bouncers.Mesh("bounceRbc", kbt=0.0) u.registerBouncer(bb) u.setBouncer(bb, pvRbc, pvSolvent)
u = mir.Mirheo(ranks, domain, dt, debug_level=3, log_filename='log', no_splash=True) pv_sol = mir.ParticleVectors.ParticleVector('solvent', mass = 1) ic_sol = mir.InitialConditions.Uniform(number_density=8) u.registerParticleVector(pv_sol, ic_sol) mesh_rbc = mir.ParticleVectors.MembraneMesh("rbc_mesh.off") pv_rbc = mir.ParticleVectors.MembraneVector("rbc", mass=1.0, mesh=mesh_rbc) ic_rbc = mir.InitialConditions.Membrane([[8.0, 4.0, 5.0, 1.0, 0.0, 0.0, 0.0]]) u.registerParticleVector(pv_rbc, ic_rbc) dpd = mir.Interactions.Pairwise('dpd', rc=1.0, kind="DPD", a=10.0, gamma=10.0, kBT=0.01, power=0.25) prm_rbc = lina_parameters(1.0) int_rbc = mir.Interactions.MembraneForces("int_rbc", "wlc", "Kantor", **prm_rbc, stress_free=True) u.registerInteraction(dpd) if args.substep: integrator = mir.Integrators.SubStep('substep_membrane', substeps, [int_rbc]) u.registerIntegrator(integrator) u.setIntegrator(integrator, pv_rbc) else: vv = mir.Integrators.VelocityVerlet('vv') u.registerInteraction(int_rbc) u.setInteraction(int_rbc, pv_rbc, pv_rbc) u.registerIntegrator(vv) u.setIntegrator(vv, pv_rbc)
log_filename='log', no_splash=True) mesh_rbc = mir.ParticleVectors.MembraneMesh("rbc_mesh.off") inactive_id = 0 active_id = 1 pv_rbc = mir.ParticleVectors.MembraneVector("rbc", mass=1.0, mesh=mesh_rbc) ic_rbc = mir.InitialConditions.MembraneWithTypeId( [[8.0, 4.0, 5.0, 1.0, 0.0, 0.0, 0.0], [4.0, 4.0, 5.0, 1.0, 0.0, 0.0, 0.0]], [active_id, inactive_id]) u.registerParticleVector(pv_rbc, ic_rbc) # only the active membrane gets forces prm_rbc = lina_parameters(1.0, args.fluctuations) int_rbc = mir.Interactions.MembraneForces("int_rbc", "wlc", "Kantor", **prm_rbc, stress_free=args.stress_free, filter_desc="by_type_id", type_id=active_id) vv = mir.Integrators.VelocityVerlet('vv') u.registerIntegrator(vv) u.setIntegrator(vv, pv_rbc) u.registerInteraction(int_rbc) u.setInteraction(int_rbc, pv_rbc, pv_rbc) u.registerPlugins(
ranks = (1, 1, 1) domain = (12, 8, 10) u = ymr.ymero(ranks, domain, dt, debug_level=3, log_filename='log') if args.sphereStressFree: mesh_rbc = ymr.ParticleVectors.MembraneMesh("rbc_mesh.off", "sphere_mesh.off") else: mesh_rbc = ymr.ParticleVectors.MembraneMesh("rbc_mesh.off") pv_rbc = ymr.ParticleVectors.MembraneVector("rbc", mass=1.0, mesh=mesh_rbc) ic_rbc = ymr.InitialConditions.Membrane([[8.0, 4.0, 5.0, 1.0, 0.0, 0.0, 0.0]]) u.registerParticleVector(pv_rbc, ic_rbc) prm_rbc = lina_parameters(1.0, args.fluctuations) int_rbc = ymr.Interactions.MembraneForces("int_rbc", "wlc", "Kantor", **prm_rbc, stress_free=args.stressFree) vv = ymr.Integrators.VelocityVerlet('vv') u.registerIntegrator(vv) u.setIntegrator(vv, pv_rbc) u.registerInteraction(int_rbc) u.setInteraction(int_rbc, pv_rbc, pv_rbc) u.registerPlugins(ymr.Plugins.createDumpMesh("mesh_dump", pv_rbc, 150, "ply/")) u.run(5000) if pv_rbc is not None: rbc_pos = pv_rbc.getCoordinates() np.savetxt("pos.rbc.txt", rbc_pos)