generated from IMTEK-Simulation/python-skeleton
-
Notifications
You must be signed in to change notification settings - Fork 0
Parallelmugridfiedls" #1
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
Merged
Merged
The head ref may contain hidden characters: "Parallelmugridfiedls\""
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Problem with divergence. Returns z
Updates the naming scheme for the displacement field results file to better reflect that it now contains combined data. This clarifies the purpose of the file and avoids potential confusion.
Optimizes the Jacobi-Green preconditioner by removing unnecessary name passing in the fast Jacobi preconditioner calculation. Increases the problem size for testing and adjust plot settings to accommodate larger datasets. This enables more accurate performance evaluation and allows for running larger, more realistic simulations.
-Improves convergence rate with relative residual -Adds experiment for smooth vs sharp interfaces -Fixes Jacobi Preconditioner naming in domain class -Reduces number of pixel to increase speed
Refactors and optimizes the Jacobi-Green preconditioner implementation for improved convergence in iterative solvers. Key changes include: - Enforces zero mean for the preconditioner to address numerical stability issues - Provides energy evaluation during the iterations. - Adds plotting routines to see the differences of Green and Jacobi preconditioners. - Removes unnecessary variables to improve memory efficiency
Refactors the code for computing and testing the Jacobi-Green preconditioner. Specifically, it addresses several key improvements: - Enables the computation of stress at each CG iteration - Removes unnecessary code, streamlining the process - Introduces changes aimed at improving the test setup and stability.
Refactors sensitivity analysis calculations for increased accuracy. This includes using consistent field types, correcting gradient calculations, and ensuring proper application of quadrature weights in adjoint potential and related functions. Memory allocations are also handled in a more consistent way, to avoid memory leaks.
This commit enhances the paper experiments by: - Adding more data saving capabilities - Modifying the plotting script to produce more informative plots. - Adapting the preconditioner for 2D elasticity.
Improves the efficiency and structure of the topology optimization process. - Streamlines data handling by utilizing field objects for intermediate results, reducing redundant calculations. - Optimizes memory usage and computational speed by eliminating unnecessary intermediate large tensors. - Enhances code readability and maintainability through refactoring and modularization. - Fixes a bug in the adjoint problem setup, ensuring correct sensitivity calculations. - Improves convergence by using more precise tolerance in PCG solver
Enhances the 2D elasticity topology optimization example by increasing pixel resolution for finer designs. Introduces circle inclusions as an alternative initial geometry in the paper's experiment, offering diverse starting points for the optimization. Improves the finite difference checks of double well potential and adjoint problem sensitivities by: - Expanding the range of epsilon values tested. - Refining solver tolerances for greater accuracy. - Adding new test cases and refactoring existing ones for increased coverage and clarity. These changes contribute to more robust and reliable topology optimization experiments and validation.
Refactors and improves finite difference checks in the topology optimization tests. This includes: - Renaming tests for clarity. - Corrects errors in finite difference calculations for double well potential, gradient of phase field potential, and stress equivalence potential. - Implements more robust finite difference checks for various partial derivatives, ensuring consistency between analytical and numerical results. - Fixes potential issues and improves accuracy of adjoint sensitivity analysis. - Implements new test for objective function with adjoint potential w.r.t. phase field, displacement. - Updates L-BFGS parameters for better convergence. - Fixes Reduction calls for MPI to use the object, not the class. These changes enhance the reliability and accuracy of the topology optimization framework.
Refactors sensitivity analysis in topology optimization for improved clarity and correctness. This involves: - Modifying function signatures to improve data flow. - Correcting the computation of material derivative terms. - Ensuring consistent field sizing and initialization. - Introducing new tests for stress equivalence objective function and adding tests for the whole objective function stress equivalence. - Increasing resolution of pixel array.
Refactors the sensitivity analysis in topology optimization, using base material data and field parameters for clarity and efficiency. Introduces a muGrid PCG solver for FE discretizations, replacing specialized solvers for Green, Jacobi, and Jacobi_Green preconditioners with a unified function. These changes aim to enhance code maintainability and flexibility while improving the handling of material properties and solver configurations.
Implements Jacobi Green preconditioner in the 3D elasticity solver. Introduces a combined impuls Jacobi preconditioner for better conditioning. Updates experiments and adds plotting of error evolutions, and removes unnecessary plotting of the residual.
Refactors homogenization examples to leverage muGrid fields for enhanced parallelization. Updates examples to use muGrid's real field collection and FFT engine, improving performance and scalability in parallel environments. Addresses ghost communication issues and improves preconditioner creation.
Implements a mu-grid approach for homogenization calculations, specifically focusing on elasticity problems. This includes: - Modifying the discretization process to leverage mu-grids. - Adapting the system matrix application and preconditioner calculations for mu-grids. - Introducing a conjugate gradient solver tailored for mu-grid structures. - Correcting the computation of homogenized stress and fluxes. This implementation aims to improve the efficiency and accuracy of homogenization computations.
Refactors the 2D and introduces a 3D homogenization example to leverage muGrid fields for improved performance and scalability. This includes: - Migrating to `_mugrid` versions of field-related functions. - Introducing Green's function preconditioner based on unit impulse response - Replacing PCG solver with conjugate gradients. - Corrects material tensor definitions, Poisson ratio - Addresses domain dimension related functions Removes the older 3D homogenization example.
Modifies the script to save field data (strain, stress, etc.) along with subdomain locations, allowing for proper reconstruction of the fields in parallel computations. This enhances data management and analysis capabilities.
Refactors code to enhance parallel performance with the Jacobi-Green preconditioner by - Using MPI to communicate ghosts in stress field - Modifying the Jacobi preconditioner to operate on mugrid fields. - Saving the variables to disk. - Adding a 3D domain to handle z axis and fixing errors that arise due to this change.
Adds Green and Jacobi preconditioners for the mugrid discretization. Integrates conjugate gradient solver for the mugrid discretization. Refactors the code to enable comparisons between different preconditioners and material distributions in the nonlinear elasticity experiment. Improves convergence and efficiency by using a more appropriate stopping criterion in CG.
Adds scripts for new experiments, including one focused on Jacobi-Green preconditioning and another on n-laminate structures. Improves the conjugate gradient solver by allowing a custom norm metric for convergence checking and providing the stopping criterion norm to the callback function. This allows for more flexible and informative convergence monitoring.
- Reduces max iterations in solvers to improve convergence speed. - Adds a script to generate cosine geometries for experiments, improving the workflow for creating test cases. - Implements loading pre-generated geometries to enhance reusability and control over material distribution. - Addresses a potential issue where the conjugate gradient algorithm may not converge, replacing the RuntimeError with a warning to prevent the program from crashing.
Improves the convergence behavior of the non-linear elasticity example. Adds plotting functionality to visualize stress fields and convergence data for the Jacobi-Green preconditioner. Adjusts parameters and adds a modification to material distribution for better convergence.
Refines experiment parameters to improve simulation efficiency. Modifies plotting scripts for more efficient data analysis and visualization. These changes are aimed at optimizing the performance of the Jacobi-Green solver.
Addresses memory leaks by deleting temporary arrays after saving, enhancing overall performance. Reduces save result frequency and increases resolution for paper experiments. Also changes script name for plots.
Collaborator
Author
|
Just formal |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.