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
Orthotropic elasticity #2428
Orthotropic elasticity #2428
Conversation
|
||
// Rotate the forth-order tenser in Kelvin mapping with Q*C_ortho*Q^T. | ||
// Transposition of Q is omitted, because Q is symmetric. | ||
return Q * C_ortho * Q; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
at this stage, i.e. after back-rotation, you can toss out the last two columns & rows in the 2D/AXI calculations ... then we have made no further assumption on coordinate systems.
So Q and S would remain 6D, and you return the block (Q S_inv Q)<4,4>
Alternative is to always have 3 coincide with z, for example ..
Codecov Report
@@ Coverage Diff @@
## master #2428 +/- ##
======================================
Coverage 32.1% 32.1%
======================================
Files 554 554
Lines 20740 20740
Branches 9893 9893
======================================
Hits 6659 6659
Misses 10572 10572
Partials 3509 3509 Continue to review full report at Codecov.
|
@@ -0,0 +1,2 @@ | |||
Three Poisson's ratios \f$\nu_{12}\f$, \f$\nu_{23}\f$, and \f$\nu_{13}\f$ in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is better to add the following explantation:
Note: \f$\nu_{21}\f$, \f$\nu_{32}\f$, and \f$\nu_{31}\f$ are calculated by the symmetry property as
\f$\nv_{21}E_1=\nv_{12}E_2\f$, \f$\nv_{32}E_2=\nv_{23}E_3\f$, and \f$\nv_{31}E_1=\nv_{13}E_3\f$
//! \ogs_file_param_special{material__solid__constitutive_relation__LinearElasticOrthotropic__poissons_ratios} | ||
config, "poissons_ratios", parameters, DisplacementDim); | ||
DBUG("Use '%s' as poissons_ratios parameter.", shear_moduli.name.c_str()); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be poissons_ratios.name.c_str()
here
I have been testing it with one of the Benchmarks in the 2018 book. Without setting of local coordinate system the benchmark looks fine. I will add it soon to the test set. Switching the canonical directions to incorporate the local coordinate system gives unexpected results. For example I changed the test in this PR only by setting
and displayed the elasticity tensor C in SmallDeformationFEM.h:271. The output is
I think it should be at least symmetric? |
@ThieJan Thanks! It's an error in my code. Pushing fixed implementation with the original test now extended to coordinate permutations (xyz -> yzx -> zxy) and updated Poissons ratios and Young's moduli. Keeping 'WIP' tag until first non-trivial example with skewed coordinate system is running. |
a50a7bf
to
5381eec
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The source code looks reasonable. Didn't check the tests. ⏩
I succesfully checked the current implementation with two examples of transversal anisotropy from the 2018 benchmark book. You could merge them from my copy of this branch: https://github.com/ThieJan/ogs/tree/OrthotropicElasticity One of the variations uses coordinate vector permutation while the other is rotated by a non trivial transformation. All four are checked against the analytical solutions presented in the book. So far, documentation for the web page is missing. Writing the project file, I came up with a feature request ;-) It would be nice to add a possible input for transversal anisotropy to the project file. I found the parametrization of the full orthotropc elasticity tensor sufficiently error prone to add a tested project file interface for the current implemenation. |
5381eec
to
5ca5b4e
Compare
All tests included, and code rebased. |
5ca5b4e
to
709a7c0
Compare
f237676
to
3198160
Compare
Add verification examples for transversal anisotropy from Vogel/Massmann in 2 versions each.
6d233c2
to
c3265ee
Compare
Also update the references, where especially sigma deviates very much.
c3265ee
to
5f61d60
Compare
OpenGeoSys development has been moved to GitLab. |
Use local coordinate system for the coordinate transformations. If no coordinate system is provided, the usual cartesian coordinate system is assumed.
Only 3D case is implemented and rudimentary tested in this PR.
Another unfortunate thing is that the local coordinate system must be passed through the process' interfaces to the solid material creation. This can be resolved by creating the materials independent of the process; definitely not this PR.
Commit-wise review is easier, I think.
Changelog updated.