Skip to content
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

Merged
merged 7 commits into from Apr 16, 2019

Conversation

@endJunction
Copy link
Member

commented Mar 15, 2019

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.


// 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;

This comment has been minimized.

Copy link
@nagelt

nagelt Mar 16, 2019

Member

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

This comment has been minimized.

Copy link

commented Mar 16, 2019

Codecov Report

Merging #2428 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@          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.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 03c2522...5f61d60. Read the comment docs.

@@ -0,0 +1,2 @@
Three Poisson's ratios \f$\nu_{12}\f$, \f$\nu_{23}\f$, and \f$\nu_{13}\f$ in

This comment has been minimized.

Copy link
@wenqing

wenqing Mar 18, 2019

Member

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());

This comment has been minimized.

Copy link
@ThieJan

ThieJan Mar 21, 2019

Contributor

Should be poissons_ratios.name.c_str() here

@ThieJan

This comment has been minimized.

Copy link
Contributor

commented Mar 21, 2019

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

...
    <local_coordinate_system>
        <basis_vector_0>e2</basis_vector_0>
        <basis_vector_1>e0</basis_vector_1>
        <basis_vector_2>e1</basis_vector_2>
    </local_coordinate_system>
...

and displayed the elasticity tensor C in SmallDeformationFEM.h:271. The output is

0.234279 0.320592   1.1344        0        0        0
0.591862   0.2836 0.234279        0        0        0
  0.2836  1.17756 0.320592        0        0        0
       0        0        0        0        0        2
       0        0        0        2        0        0
       0        0        0        0        2        0

I think it should be at least symmetric?

@endJunction

This comment has been minimized.

Copy link
Member Author

commented Mar 21, 2019

@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.

@endJunction endJunction force-pushed the endJunction:OrthotropicElasticity branch 2 times, most recently from a50a7bf to 5381eec Mar 21, 2019

@TomFischer
Copy link
Member

left a comment

The source code looks reasonable. Didn't check the tests.

@ThieJan

This comment has been minimized.

Copy link
Contributor

commented Apr 2, 2019

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.

@endJunction endJunction force-pushed the endJunction:OrthotropicElasticity branch from 5381eec to 5ca5b4e Apr 14, 2019

@endJunction endJunction removed the WIP 🏗 label Apr 14, 2019

@endJunction

This comment has been minimized.

Copy link
Member Author

commented Apr 14, 2019

All tests included, and code rebased.

@endJunction endJunction force-pushed the endJunction:OrthotropicElasticity branch from 5ca5b4e to 709a7c0 Apr 14, 2019

@endJunction endJunction force-pushed the endJunction:OrthotropicElasticity branch 2 times, most recently from f237676 to 3198160 Apr 15, 2019

[T] Transversal anisotropy tests.
Add verification examples for transversal anisotropy from Vogel/Massmann
in 2 versions each.

@endJunction endJunction force-pushed the endJunction:OrthotropicElasticity branch 2 times, most recently from 6d233c2 to c3265ee Apr 15, 2019

[T] Use tighter tolerances for nonlinear solver.
Also update the references, where especially sigma
deviates very much.

@endJunction endJunction force-pushed the endJunction:OrthotropicElasticity branch from c3265ee to 5f61d60 Apr 16, 2019

@endJunction endJunction merged commit 4532ec0 into ufz:master Apr 16, 2019

2 of 4 checks passed

continuous-integration/jenkins/pr-merge This commit cannot be built
Details
Codacy/PR Quality Review Not up to standards. This pull request quality could be better.
Details
deploy/netlify Deploy preview ready!
Details
ufz.ogs #20190416.10 succeeded
Details

@endJunction endJunction deleted the endJunction:OrthotropicElasticity branch Apr 16, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants
You can’t perform that action at this time.