Skip to content

Conversation

@axla-io
Copy link
Collaborator

@axla-io axla-io commented Dec 22, 2023

This PR adds an optimzed lifting to the EQP for the nonlinear elasticity example, which doesn't lift the entire state vector before applying EQP.

The optimization has been tested on the nonlinear elasticity examples at the start of the .cpp file

@axla-io axla-io merged commit e2093a3 into nl-elast-eqp Dec 22, 2023
@axla-io axla-io deleted the nl-elast-eqp-opt branch December 22, 2023 15:19
axla-io added a commit that referenced this pull request Jan 8, 2024
* initial commit

* Updated ROM operator class definition
 and input arguments

* EQP hyperreduction setup

* Added hyperreduction until line 1000

* Setting BCs

* Finished implementation in main

* Started ROM operator initialization
Need to review before finishing

* Gone through the code
and implemented what was straightforward

* Mult_hyperreduced

* small fixes
to make consistent with class definition

* removed eqp_lifting code, since it's not necessary

* Started eqp coefficient computation implementation
And made fast calculation TODO

* Updated SetupEQP to make tests run

* Some more fixes for the compiler

* Changed rrdim -> rxdim

* Started SetupEqp_snapshots
for hyperelastic nonlinear operator

* Added sketch for compute reduced eqp

* Code compiles

* Added element function to G row computation

* Testing element vector error

* Debugging.
Vshape not implemented for this class...

* fixed bug

* Explicitly adding model to eqp loop

* segfault fix

* segfault fix 2

* debug segfault

* actual debug fix

* perhaps segfault fix

* small fix

* New test.

* testing

* changed back

* testing back again

* Hopefully

* Finished writing the test.

* Fixed compilation

* Debugging elvect size

* passing by reference

* Fix for element vector

* check all errors

* Synced with hyperelasticintegrator.

* Divide error by two

* changed points to check error

* Clean up

* testing SetupEQPSnapshots

* testing errors for NNLS

* small fix

* removed testing

* Remove normalize constraints

* Fixed segfault

* Reduced EQP is building

* Running but wrong

* Runs!

* Fixed some issues

* rank-myid fix

* Syntax improvements

* fixed bug for v0

* small fix

* Implemented time windowing

* Added command line option for time windowing

* Added EQP command line examples

* Cleaned up code

* Sketch for optimized EQP

* Continued fast eqp implementation

* Improved regular EQP

* V-basis speedup

* Storing DS now

* Solved segmentation fault in non eqp hyperreduction

* Adding QDEIM option to some examples.

* updated gitignore

* Matrix multiplication optimization

* Tested precompute optimization

* Numbering works now.

* Testing .hpp fix again

* Fixed .hpp style issue

* Delete the RomOperator to remove a memory leak

* Updated RomOperator structure
to have less leaks in timestepping

* Cause of segfault error found

* Segfault fixed

* Removed EQP bug

* Add x0 to setupEQP

* add matrix row/col rescaling methods

* normalize NNLS constraints

* Added x0

* Fixed bug in NNLS constraint forming loop.

* Max iters increased

* improved eqp speed

* resetting temp variable now

* Moved temporary variable to the correct position

* Minor formatting changes

* Removed duplicate lines in examples

* build succeeds

* Updated formatting

* Astyle 3.1.

* updated .gitignore

* ++ increment

* Removed ReducedSystemOperator

* Removed unnecessary comments

* Added consts

* Added more ++ increments

* Removed unnecessary HSINV

* Comments

* LibROM native read / write

* Added pointer deletion

* librom runs

* New benchmarks

* elementmatrix first implementation

* Construct em outside loop

* Added element matrices to ROM class

* Reduced EQP fast uses em

* Em on everything

* Debugged EQP

* Formatting

* Removed unnecessary comment

* Removed more unnecessary comments

* Implemented subsampling

* measure elapsed time for EQP

* Measure elapsed time for all methods

* Update .gitignore

* Optimized lifting of FOM dimension in Nonlinear elasticity EQP (#259)

* implementation works and gives speed up

* Removed unnecessary variables

* Final benchmark

---------

Co-authored-by: Dylan Copeland <[email protected]>
Co-authored-by: Chris Vales <[email protected]>
Co-authored-by: Dylan Copeland <[email protected]>
andersonw1 pushed a commit that referenced this pull request Jan 8, 2024
* initial commit

* Updated ROM operator class definition
 and input arguments

* EQP hyperreduction setup

* Added hyperreduction until line 1000

* Setting BCs

* Finished implementation in main

* Started ROM operator initialization
Need to review before finishing

* Gone through the code
and implemented what was straightforward

* Mult_hyperreduced

* small fixes
to make consistent with class definition

* removed eqp_lifting code, since it's not necessary

* Started eqp coefficient computation implementation
And made fast calculation TODO

* Updated SetupEQP to make tests run

* Some more fixes for the compiler

* Changed rrdim -> rxdim

* Started SetupEqp_snapshots
for hyperelastic nonlinear operator

* Added sketch for compute reduced eqp

* Code compiles

* Added element function to G row computation

* Testing element vector error

* Debugging.
Vshape not implemented for this class...

* fixed bug

* Explicitly adding model to eqp loop

* segfault fix

* segfault fix 2

* debug segfault

* actual debug fix

* perhaps segfault fix

* small fix

* New test.

* testing

* changed back

* testing back again

* Hopefully

* Finished writing the test.

* Fixed compilation

* Debugging elvect size

* passing by reference

* Fix for element vector

* check all errors

* Synced with hyperelasticintegrator.

* Divide error by two

* changed points to check error

* Clean up

* testing SetupEQPSnapshots

* testing errors for NNLS

* small fix

* removed testing

* Remove normalize constraints

* Fixed segfault

* Reduced EQP is building

* Running but wrong

* Runs!

* Fixed some issues

* rank-myid fix

* Syntax improvements

* fixed bug for v0

* small fix

* Implemented time windowing

* Added command line option for time windowing

* Added EQP command line examples

* Cleaned up code

* Sketch for optimized EQP

* Continued fast eqp implementation

* Improved regular EQP

* V-basis speedup

* Storing DS now

* Solved segmentation fault in non eqp hyperreduction

* Adding QDEIM option to some examples.

* updated gitignore

* Matrix multiplication optimization

* Tested precompute optimization

* Numbering works now.

* Testing .hpp fix again

* Fixed .hpp style issue

* Delete the RomOperator to remove a memory leak

* Updated RomOperator structure
to have less leaks in timestepping

* Cause of segfault error found

* Segfault fixed

* Removed EQP bug

* Add x0 to setupEQP

* add matrix row/col rescaling methods

* normalize NNLS constraints

* Added x0

* Fixed bug in NNLS constraint forming loop.

* Max iters increased

* improved eqp speed

* resetting temp variable now

* Moved temporary variable to the correct position

* Minor formatting changes

* Removed duplicate lines in examples

* build succeeds

* Updated formatting

* Astyle 3.1.

* updated .gitignore

* ++ increment

* Removed ReducedSystemOperator

* Removed unnecessary comments

* Added consts

* Added more ++ increments

* Removed unnecessary HSINV

* Comments

* LibROM native read / write

* Added pointer deletion

* librom runs

* New benchmarks

* elementmatrix first implementation

* Construct em outside loop

* Added element matrices to ROM class

* Reduced EQP fast uses em

* Em on everything

* Debugged EQP

* Formatting

* Removed unnecessary comment

* Removed more unnecessary comments

* Implemented subsampling

* measure elapsed time for EQP

* Measure elapsed time for all methods

* Update .gitignore

* Optimized lifting of FOM dimension in Nonlinear elasticity EQP (#259)

* implementation works and gives speed up

* Removed unnecessary variables

* Final benchmark

---------

Co-authored-by: Dylan Copeland <[email protected]>
Co-authored-by: Chris Vales <[email protected]>
Co-authored-by: Dylan Copeland <[email protected]>
andersonw1 pushed a commit that referenced this pull request Apr 2, 2024
* initial commit

* Updated ROM operator class definition
 and input arguments

* EQP hyperreduction setup

* Added hyperreduction until line 1000

* Setting BCs

* Finished implementation in main

* Started ROM operator initialization
Need to review before finishing

* Gone through the code
and implemented what was straightforward

* Mult_hyperreduced

* small fixes
to make consistent with class definition

* removed eqp_lifting code, since it's not necessary

* Started eqp coefficient computation implementation
And made fast calculation TODO

* Updated SetupEQP to make tests run

* Some more fixes for the compiler

* Changed rrdim -> rxdim

* Started SetupEqp_snapshots
for hyperelastic nonlinear operator

* Added sketch for compute reduced eqp

* Code compiles

* Added element function to G row computation

* Testing element vector error

* Debugging.
Vshape not implemented for this class...

* fixed bug

* Explicitly adding model to eqp loop

* segfault fix

* segfault fix 2

* debug segfault

* actual debug fix

* perhaps segfault fix

* small fix

* New test.

* testing

* changed back

* testing back again

* Hopefully

* Finished writing the test.

* Fixed compilation

* Debugging elvect size

* passing by reference

* Fix for element vector

* check all errors

* Synced with hyperelasticintegrator.

* Divide error by two

* changed points to check error

* Clean up

* testing SetupEQPSnapshots

* testing errors for NNLS

* small fix

* removed testing

* Remove normalize constraints

* Fixed segfault

* Reduced EQP is building

* Running but wrong

* Runs!

* Fixed some issues

* rank-myid fix

* Syntax improvements

* fixed bug for v0

* small fix

* Implemented time windowing

* Added command line option for time windowing

* Added EQP command line examples

* Cleaned up code

* Sketch for optimized EQP

* Continued fast eqp implementation

* Improved regular EQP

* V-basis speedup

* Storing DS now

* Solved segmentation fault in non eqp hyperreduction

* Adding QDEIM option to some examples.

* updated gitignore

* Matrix multiplication optimization

* Tested precompute optimization

* Numbering works now.

* Testing .hpp fix again

* Fixed .hpp style issue

* Delete the RomOperator to remove a memory leak

* Updated RomOperator structure
to have less leaks in timestepping

* Cause of segfault error found

* Segfault fixed

* Removed EQP bug

* Add x0 to setupEQP

* add matrix row/col rescaling methods

* normalize NNLS constraints

* Added x0

* Fixed bug in NNLS constraint forming loop.

* Max iters increased

* improved eqp speed

* resetting temp variable now

* Moved temporary variable to the correct position

* Minor formatting changes

* Removed duplicate lines in examples

* build succeeds

* Updated formatting

* Astyle 3.1.

* updated .gitignore

* ++ increment

* Removed ReducedSystemOperator

* Removed unnecessary comments

* Added consts

* Added more ++ increments

* Removed unnecessary HSINV

* Comments

* LibROM native read / write

* Added pointer deletion

* librom runs

* New benchmarks

* elementmatrix first implementation

* Construct em outside loop

* Added element matrices to ROM class

* Reduced EQP fast uses em

* Em on everything

* Debugged EQP

* Formatting

* Removed unnecessary comment

* Removed more unnecessary comments

* Implemented subsampling

* measure elapsed time for EQP

* Measure elapsed time for all methods

* Update .gitignore

* Optimized lifting of FOM dimension in Nonlinear elasticity EQP (#259)

* implementation works and gives speed up

* Removed unnecessary variables

* Final benchmark

---------

Co-authored-by: Dylan Copeland <[email protected]>
Co-authored-by: Chris Vales <[email protected]>
Co-authored-by: Dylan Copeland <[email protected]>
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