예제 #1
0
    #node.Fix(DISTANCE)
    if node.Y < 0.001 or node.Y > 0.14999:
        node.Fix(VELOCITY_Y)
        node.Fix(VELOCITY_X)
    if node.X > 0.49999 or node.X < 0.0001:
        node.Fix(VELOCITY_X)
    if node.Y > 0.1499:
        node.Fix(PRESSURE)

    node.SetSolutionStepValue(BODY_FORCE_Y, 0, -9.8)
    if node.Z < 0.0001 or node.Z > 0.049999:
        node.Fix(VELOCITY_Z)

#creating a solver object
maximum_nonlin_iterations = 10  #nonlinear problem
solver = pfem2_solver.PFEM2Solver(model_part, domain_size,
                                  maximum_nonlin_iterations)
solver.time_order = 1
solver.echo_level = 1
solver.Initialize()

mesh_name = 0.0
gid_io.InitializeMesh(mesh_name)
gid_io.WriteMesh((model_part).GetMesh())
gid_io.FinalizeMesh()

gid_io.InitializeResults(mesh_name, (model_part).GetMesh())

nsteps = 202
Dt = 0.005
out = 0
out_step = 1
예제 #2
0
    if node.X > 0.999 or node.X < 0.0001:
        node.Fix(VELOCITY_X)
        node.Fix(FRACT_VEL_X)
    if node.Y > 3.999 or node.Y < 0.0001:
        node.Fix(FRACT_VEL_Y)
        node.Fix(VELOCITY_Y)

#the buffer size should be set up here after the mesh is read for the first time  (this is important for transcient problems, in this static problem =1 is enough)
model_part.SetBufferSize(2)

# we add the DoFs
pfem_2_solver.AddDofs(model_part)

#creating a solver object
solver = pfem_2_solver.PFEM2Solver(model_part, domain_size)
solver.time_order = 1
solver.echo_level = 3
solver.Initialize()

mesh_name = 0.0
gid_io.InitializeMesh(mesh_name)
gid_io.WriteMesh((model_part).GetMesh())

gid_io.FinalizeMesh()

gid_io.InitializeResults(mesh_name, (model_part).GetMesh())

nsteps = 1000
Dt = 0.02
out = 0