Skip to content

Conversation

@herrinj
Copy link

@herrinj herrinj commented Jul 17, 2018

Extending #5 to 3D and matrix-free implementations. Extends on Hari's work.

hariagr and others added 20 commits July 11, 2017 05:16
1. ‘yn’ is not defined when wc is empty. Therefore, xn should be
updated by yRef.

2. Addpath for add-ons folders during FAIR startup.

3. solver is defined as a char, not string. Probably, this issue has
recently arises because of structural changes in R2017a.
These changes are required to use matrix-free functionality of hyper
elastic regularization function in the add-on FEMAPP (Only for 2D).

To verify the changes, the file “EFEM_SSD_MBvsMF.m” compares the
results from MF and MB.
These are minor changes to run matrixfree functionality of FEMPIRE.
But, data fidelity term is still not matrixfree. Prob, this involves
little more work. Will come back to this later.

Added a file to compare results from MF and MB.
Matrixfree implementations of
- derivative of determinants,
- diagonal of hessian matrix, and
- Hessian matrix
Implement matrix free code to evaluate determinant.

Added a script “verifyMF_getdeterminant” to verify results
Modified HyperElasticFEM function.

Work to do:
MatrixFree code for diagonal elements of Hessian matrix.
MatrixFree code for diagonal of Hessian matrix is implemented.

We may have an issue in the implementation.
- if we set only alphaVolume parameter to check the accuracy of
Matrixfree code with MB code, there is a slight error in the
calculation. You can run hyperelastic.m to see the error norm.

It appears that the differences are high only for few nodes. These
nodes varies with different yc/yn values.
Generally, d2Svolume has very high values. Small numerical errors in
least decimal points are probably showing up.

These are few quick observations.
Most of the pieces required for MatrixFree code are completed now.

Run EFEM_FEMPIRE_Mice3D.m.

I have not done rigorous testing so far.

Specially for 3D code, few of the calculations are being done multiple
times. May be we can restructure the code little bit to reduce
computational time.
Moved getBasisGradient and Cofactor3D functions in a separate script
file.

Gradient of basis functions are now computed only once in the entire
function call, by moving these calculations to MESH structure main file.

NOTE: There is a slight difference between estimates coming out from
MatrixFree and Non-MatrixFree code, in the 3D case.
Minor changes in FEMobjFctn.m for MatrixFree functionality and added a
PCG solver function.
…ee and matrix-based code for 2D and 3D problems. Stored cof, det, and By explicitly to make code faster.
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.

3 participants