-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Turek #898
base: master
Are you sure you want to change the base?
Turek #898
Conversation
f185c45
to
7b5ae2a
Compare
examples/turek.py
Outdated
return (self.theta + numpy.arange(self.endtime / self.timestep)) * self.timestep | ||
|
||
def value_and_rate(self, v1, subs): | ||
'Given value at and of time step, return theta value and time derivative.' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(typo) and -> end
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
examples/turek.py
Outdated
# are those that have support on the solid domain. The remaining trial | ||
# dofs will follow from minimizing a mesh energy functional, using the | ||
# solid deformation as a boundary constraint so that the continuation | ||
# problem does not feed back into the physics. To achive this within a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo: achieve
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
examples/turek.py
Outdated
# it to restrict the minimization problem to the remaining dofs via the | ||
# replace_arguments operation. | ||
mesh_energy = topo['fluid'].integral('C1_kk - 2 log(J1)' @ ns, degree=4) # Neo-Hookean with jacobian based stiffness | ||
sqr = topo['solid'].integral(ns.d1 @ ns.d1, degree=4) / 'm2' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
consistentie: 'd1_k d1_k' @ ns
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
examples/turek.py
Outdated
mesh_energy = topo['fluid'].integral('C1_kk - 2 log(J1)' @ ns, degree=4) # Neo-Hookean with jacobian based stiffness | ||
sqr = topo['solid'].integral(ns.d1 @ ns.d1, degree=4) / 'm2' | ||
dfluid = numpy.isnan(System(sqr, trial='d').solve_constraints(droptol=1e-10)['d']) # true if dof is not supported by solid domain | ||
res += function.replace_arguments(function.linearize(mesh_energy, 'd:dtest'), dict(dtest=function.arguments_for(res)['dtest']*dfluid)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can be merged to remove the replace_arguments and substitute dtest directly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
examples/turek.py
Outdated
# for the relative velocity at the remaining boundaries. | ||
y = ns.xref[1] / domain.channel_height | ||
uin = 6 * fluid.velocity * y * (1 - y) # Posseuille profile | ||
sqr = topo['fluid'].boundary['wall,pivot,flap'].integral(ns.urel1 @ ns.urel1, degree=4) / 'm2/s2' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
'urel1_i urel1_i' @ ns ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
bb225e6
to
2b0aafa
Compare
e01836b
to
0865107
Compare
This patch adds installation of gmsh and meshio to the test examples workflow to prepare for the addition of the turek example.
This patch modifies the base contaner to include the gmsh application, which is required for the upcoming turek benchmark.
This patch adds the turek example, which covers all benchmark problems as defined by Turek and Hron (reference in the code).
No description provided.