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

feat: plastic strain output #3384

Merged
merged 61 commits into from
Jan 7, 2025
Merged
Changes from 1 commit
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
d5de7f3
Update SolidMechanicsLagrangianFEM.cpp
ryar9534 Oct 3, 2024
662836f
Update StrainHelper.hpp
ryar9534 Oct 3, 2024
df505c2
Update SolidMechanicsFields.hpp
ryar9534 Oct 3, 2024
3b0bd7b
Update SolidMechanicsLagrangianFEM.cpp
ryar9534 Oct 3, 2024
78e4db4
Update StrainHelper.hpp
ryar9534 Oct 3, 2024
a23f26f
Update StrainHelper.hpp
ryar9534 Oct 3, 2024
c2325c3
Update StrainHelper.hpp
ryar9534 Oct 3, 2024
27a4801
Update StrainHelper.hpp
ryar9534 Oct 3, 2024
18a94b2
Update StrainHelper.hpp
ryar9534 Oct 3, 2024
c7e03b9
Update SolidMechanicsLagrangianFEM.cpp
ryar9534 Oct 3, 2024
2f4e691
Update SolidMechanicsLagrangianFEM.cpp
ryar9534 Oct 3, 2024
3cf18ca
Update StrainHelper.hpp
ryar9534 Oct 3, 2024
4284d71
Update SolidMechanicsLagrangianFEM.cpp
ryar9534 Oct 3, 2024
cd42322
Update SolidMechanicsLagrangianFEM.cpp
ryar9534 Oct 3, 2024
6700051
Update SolidMechanicsLagrangianFEM.cpp
ryar9534 Oct 3, 2024
5c8f164
Update SolidMechanicsLagrangianFEM.cpp
ryar9534 Oct 3, 2024
7a51c30
Update StrainHelper.hpp
ryar9534 Oct 3, 2024
ca89c99
Update StrainHelper.hpp
ryar9534 Oct 3, 2024
0e72772
Merge branch 'develop' into feature/aronson/plasticStrainOutput
ryar9534 Oct 3, 2024
4f21e46
Merge branch 'develop' into feature/aronson/plasticStrainOutput
ryar9534 Oct 7, 2024
cf6fe98
initial implementation, behavior is almost right but need to debug in…
ryar9534 Oct 11, 2024
8fda259
remove extraneous file
ryar9534 Oct 11, 2024
f5f1fa7
initial proposal for handling prescribed displacements and sign diffe…
ryar9534 Oct 15, 2024
d192712
Merge branch 'develop' into feature/aronson/plasticStrainOutput
ryar9534 Nov 5, 2024
1de0c2c
Merge branch 'develop' into feature/aronson/plasticStrainOutput
ryar9534 Nov 27, 2024
48db73d
simple method for handling BCs, may want to put in a disclaimer
ryar9534 Dec 4, 2024
583e7de
Update SolidMechanicsStateReset.cpp
ryar9534 Dec 5, 2024
e9bd953
Update StrainHelper.hpp
ryar9534 Dec 5, 2024
9abd3da
Merge branch 'develop' into feature/aronson/plasticStrainOutput
ryar9534 Dec 5, 2024
25ddb6a
Update SolidMechanicsStateReset.cpp
ryar9534 Dec 5, 2024
ccc1b0d
uncrustify
ryar9534 Dec 5, 2024
913a1a0
Merge branch 'develop' into feature/aronson/plasticStrainOutput
ryar9534 Dec 9, 2024
179e4fd
Apply suggestions from code review
ryar9534 Dec 11, 2024
834bba6
Apply suggestions from code review
ryar9534 Dec 11, 2024
3b9372e
Update ElasticIsotropicPressureDependent.hpp
ryar9534 Dec 11, 2024
136fe65
Update ElasticIsotropicPressureDependent.hpp
ryar9534 Dec 11, 2024
dbf7497
Merge branch 'develop' into feature/aronson/plasticStrainOutput
ryar9534 Dec 11, 2024
246dbc8
Update ElasticIsotropicPressureDependent.hpp
ryar9534 Dec 11, 2024
bb4dfc8
uncrustify
ryar9534 Dec 11, 2024
ee9d389
Merge branch 'develop' into feature/aronson/plasticStrainOutput
ryar9534 Dec 11, 2024
4e6c411
Update .integrated_tests.yaml
ryar9534 Dec 11, 2024
ce59c54
Update BASELINE_NOTES.md
ryar9534 Dec 11, 2024
beae829
add elastic strain functions to ElasticOrthotropic
ryar9534 Dec 13, 2024
a5164dc
Update ElasticOrthotropic.hpp
ryar9534 Dec 13, 2024
d403991
Add elastic strain functions to ElasticTransverseIsotropic
ryar9534 Dec 13, 2024
b04133d
Update .integrated_tests.yaml
ryar9534 Dec 16, 2024
d8a1680
uncrustify
ryar9534 Dec 16, 2024
bb8efc1
Merge branch 'develop' into feature/aronson/plasticStrainOutput
ryar9534 Dec 16, 2024
01cce1e
Update .integrated_tests.yaml
ryar9534 Dec 16, 2024
cfe31b2
Merge branch 'develop' into feature/aronson/plasticStrainOutput
rrsettgast Dec 16, 2024
caef37b
Update .integrated_tests.yaml
ryar9534 Dec 16, 2024
69ade8d
restructure elasticIsotropic
ryar9534 Dec 16, 2024
576e7bb
restructure elasticOrthotropic
ryar9534 Dec 16, 2024
54f91fc
restructure elasticTransverseIsotropic
ryar9534 Dec 16, 2024
93b5268
uncrustify
ryar9534 Dec 16, 2024
592b991
Update StrainHelper.hpp to output tensor strain not engineering
ryar9534 Dec 19, 2024
381d6ba
Merge branch 'develop' into feature/aronson/plasticStrainOutput
paveltomin Dec 19, 2024
2c13f68
Update .integrated_tests.yaml
ryar9534 Dec 20, 2024
74c7226
Merge branch 'develop' into feature/aronson/plasticStrainOutput
paveltomin Dec 20, 2024
4e0f693
Merge branch 'develop' into feature/aronson/plasticStrainOutput
paveltomin Jan 7, 2025
0ce3b32
Update .integrated_tests.yaml
paveltomin Jan 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
restructure elasticIsotropic
  • Loading branch information
ryar9534 committed Dec 16, 2024
commit 69ade8dfbdea2ca8849797d238b8c8fde167cb09
51 changes: 35 additions & 16 deletions src/coreComponents/constitutive/solid/ElasticIsotropic.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,13 @@ class ElasticIsotropicUpdates : public SolidBaseUpdates

protected:

GEOS_HOST_DEVICE
virtual void computeElasticStrain( localIndex const k,
localIndex const q,
real64 const ( &stress )[6],
real64 ( &elasticStrainInc )[6] ) const;


/// A reference to the ArrayView holding the bulk modulus for each element.
arrayView1d< real64 const > const m_bulkModulus;

Expand Down Expand Up @@ -215,22 +222,37 @@ void ElasticIsotropicUpdates::getElasticStiffness( localIndex const k,
}


GEOS_HOST_DEVICE
inline
void ElasticIsotropicUpdates::computeElasticStrain( localIndex const k,
localIndex const q,
real64 const ( &stress )[6],
real64 ( & elasticStrain)[6] ) const
{
GEOS_UNUSED_VAR( q );
real64 const E = conversions::bulkModAndShearMod::toYoungMod( m_bulkModulus[k], m_shearModulus[k] );
real64 const nu = conversions::bulkModAndShearMod::toPoissonRatio( m_bulkModulus[k], m_shearModulus[k] );

elasticStrain[0] = ( stress[0] - nu*stress[1] - nu*stress[2])/E;
elasticStrain[1] = (-nu*stress[0] + stress[1] - nu*stress[2])/E;
elasticStrain[2] = (-nu*stress[0] - nu*stress[1] + stress[2])/E;

elasticStrain[3] = stress[3] / m_shearModulus[k];
elasticStrain[4] = stress[4] / m_shearModulus[k];
elasticStrain[5] = stress[5] / m_shearModulus[k];
}

GEOS_HOST_DEVICE
inline
void ElasticIsotropicUpdates::getElasticStrain( localIndex const k,
localIndex const q,
real64 ( & elasticStrain)[6] ) const
{
real64 const E = conversions::bulkModAndShearMod::toYoungMod( m_bulkModulus[k], m_shearModulus[k] );
real64 const nu = conversions::bulkModAndShearMod::toPoissonRatio( m_bulkModulus[k], m_shearModulus[k] );

elasticStrain[0] = ( m_newStress[k][q][0] - nu*m_newStress[k][q][1] - nu*m_newStress[k][q][2])/E;
elasticStrain[1] = (-nu*m_newStress[k][q][0] + m_newStress[k][q][1] - nu*m_newStress[k][q][2])/E;
elasticStrain[2] = (-nu*m_newStress[k][q][0] - nu*m_newStress[k][q][1] + m_newStress[k][q][2])/E;
real64 stress[6] = {m_newStress[k][q][0], m_newStress[k][q][1], m_newStress[k][q][2], m_newStress[k][q][3], m_newStress[k][q][4], m_newStress[k][q][5]};

computeElasticStrain( k, q, stress, elasticStrain );

elasticStrain[3] = m_newStress[k][q][3] / m_shearModulus[k];
elasticStrain[4] = m_newStress[k][q][4] / m_shearModulus[k];
elasticStrain[5] = m_newStress[k][q][5] / m_shearModulus[k];
}

GEOS_HOST_DEVICE
Expand All @@ -239,16 +261,13 @@ void ElasticIsotropicUpdates::getElasticStrainInc( localIndex const k,
localIndex const q,
real64 ( & elasticStrainInc)[6] ) const
{
real64 const E = conversions::bulkModAndShearMod::toYoungMod( m_bulkModulus[k], m_shearModulus[k] );
real64 const nu = conversions::bulkModAndShearMod::toPoissonRatio( m_bulkModulus[k], m_shearModulus[k] );

elasticStrainInc[0] = ( (m_newStress[k][q][0] - m_oldStress[k][q][0]) - nu*(m_newStress[k][q][1] - m_oldStress[k][q][1]) - nu*(m_newStress[k][q][2] - m_oldStress[k][q][2]))/E;
elasticStrainInc[1] = (-nu*(m_newStress[k][q][0] - m_oldStress[k][q][0]) + (m_newStress[k][q][1] - m_oldStress[k][q][1]) - nu*(m_newStress[k][q][2] - m_oldStress[k][q][2]))/E;
elasticStrainInc[2] = (-nu*(m_newStress[k][q][0] - m_oldStress[k][q][0]) - nu*(m_newStress[k][q][1] - m_oldStress[k][q][1]) + (m_newStress[k][q][2] - m_oldStress[k][q][2]))/E;
real64 stress[6] =
{m_newStress[k][q][0] - m_oldStress[k][q][0], m_newStress[k][q][1] - m_oldStress[k][q][1], m_newStress[k][q][2] - m_oldStress[k][q][2], m_newStress[k][q][3] - m_oldStress[k][q][3],
m_newStress[k][q][4] - m_oldStress[k][q][4], m_newStress[k][q][5] - m_oldStress[k][q][5]};

computeElasticStrain( k, q, stress, elasticStrainInc );

elasticStrainInc[3] = (m_newStress[k][q][3] - m_oldStress[k][q][3]) / m_shearModulus[k];
elasticStrainInc[4] = (m_newStress[k][q][4] - m_oldStress[k][q][4]) / m_shearModulus[k];
elasticStrainInc[5] = (m_newStress[k][q][5] - m_oldStress[k][q][5]) / m_shearModulus[k];
}

GEOS_HOST_DEVICE
Expand Down