示例#1
0
文件: mesh.py 项目: dimaleks/uDeviceX
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)
示例#2
0
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)
示例#3
0
               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(
示例#4
0
文件: rest.py 项目: dimaleks/uDeviceX
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)