Reinforced rubber under a simple tensile test #318
ZAARAOUI999
started this conversation in
Show and tell
Replies: 1 comment 6 replies
-
Hi, thats indeed a bit tricky. Here is an example. Hope that helps. import felupe as fem
import numpy as np
# create a rectangle
m = fem.Rectangle(n=21)
# take some points from the inside for the fiber-reinforced area
eps = 1e-3
mask = np.arange(m.npoints)[np.logical_and.reduce([
m.points[:, 0] >= 0.3,
m.points[:, 0] <= 0.7 + eps,
m.points[:, 1] >= 0.3,
m.points[:, 1] <= 0.7 + eps,
])]
# copies of the mesh
mesh = [m.copy(), m.copy()]
# create sub-meshes (fiber, matrix)
mesh[0].update(m.cells[ np.all(np.isin(m.cells, mask), axis=1)])
mesh[1].update(m.cells[~np.all(np.isin(m.cells, mask), axis=1)])
# a global and two sub-regions
region = fem.RegionQuad(m)
regions = [fem.RegionQuad(me) for me in mesh]
# a global and two sub-fields
field = fem.FieldsMixed(region, n=1, planestrain=True)
fields = [
fem.FieldsMixed(regions[0], n=1, planestrain=True),
fem.FieldsMixed(regions[1], n=1, planestrain=True),
]
# two material model formulations
neo_hooke = fem.NeoHooke(mu=1, bulk=1)
linear_elastic = fem.LinearElastic(E=100, nu=0.3)
# the solid bodies
fiber = fem.SolidBody(umat=linear_elastic, field=fields[0])
matrix = fem.SolidBody(umat=neo_hooke, field=fields[1])
# boundary conditions; applied on the global field
# which must be the x0-argument in job.evaluate()
boundaries = dict(
fixed=fem.Boundary(field[0], fx=0),
move=fem.Boundary(field[0], fx=1),
)
# prepare a step with substeps
move = fem.math.linsteps([0, 0.5], num=10)
step = fem.Step(
items=[matrix, fiber],
ramp={boundaries["move"]: move},
boundaries=boundaries
)
# take care of the x0-argument
job = fem.Job(steps=[step])
job.evaluate(x0=field, filename="result.xdmf") Have a nice evening, |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello, Mr. Andreas, I wish you were well, so as is mentioned by the title of this discussion, I'm trying to simulate a reinforced rubber under a simple tensile test. So, the flow of my work is:
Here are the regions and the mesh
Then, I got this!!!
It looks like I have misunderstood things or this simulation needs the definition of a relation between fibers and matrix I mean at the level of the interface. And it's clear that the behavior of the fibers isn't normal. Any idea about what's happening here?
Thanks in advance
Beta Was this translation helpful? Give feedback.
All reactions