Skip to content
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

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Turek #898

wants to merge 3 commits into from

Conversation

gertjanvanzwieten
Copy link
Contributor

No description provided.

@gertjanvanzwieten gertjanvanzwieten force-pushed the turek branch 4 times, most recently from f185c45 to 7b5ae2a Compare February 6, 2025 09:38
@gertjanvanzwieten gertjanvanzwieten marked this pull request as ready for review February 6, 2025 09:39
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.'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(typo) and -> end

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

# 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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: achieve

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

# 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'

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

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

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))

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

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

# 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'

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 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

@gertjanvanzwieten gertjanvanzwieten force-pushed the turek branch 8 times, most recently from bb225e6 to 2b0aafa Compare February 8, 2025 10:16
@gertjanvanzwieten gertjanvanzwieten force-pushed the turek branch 2 times, most recently from e01836b to 0865107 Compare February 21, 2025 10:02
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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants