Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
  • trunk trunk
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 97
    • Issues 97
    • List
    • Boards
    • Service Desk
    • Milestones
    • Requirements
  • Merge requests 7
    • Merge requests 7
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • yade-devyade-dev
  • trunktrunk
  • Merge requests
  • !864

reimplement flipCell, fix https://answers.launchpad.net/yade/+question/701782

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged bchareyre requested to merge antoherFlipCell into master May 24, 2022
  • Overview 10
  • Commits 17
  • Pipelines 20
  • Changes 11

There were multiple problems in previous implementation. All fixed in 33e871fe (the first commit); the next commits are not changing the implementation in itself.

  1. There are three main flips along X,Y,Z (the vectors of hSize). The total flip must be defined by recursive multiplication: flip=flipX * flipY * flipZ (each factor has determinant=1, leaving hSize.determinant unchanged). Instead, previous implementation would sum the terms, as in flip=flipX+flipY+flipZ, which opens up the possibility of a singular flip matrix like ((1,1,1),(1,1,1),(1,1,1)) (det=0, final volume=0).
  2. We can't flip each coordinate independently. Suppose X is the axis being flipped, if we flip Xy first, then Xz, it is possible that the second flip invalidates the first one. Leaving the cell elongated.
  3. When flip along X is decided, we need to determine the next flip (along Y) by considering a modified hSize (flipped along X). Instead, previous code would go back to virgin hSize for all three flips, possibly giving an irrelevant combination of flips (and, why not, a singular matrix and null volume).
Edited Jun 03, 2022 by bchareyre
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: antoherFlipCell