-
Notifications
You must be signed in to change notification settings - Fork 1.2k
XFEM near-tip enrichment for crack propagation #31730
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
base: next
Are you sure you want to change the base?
Changes from 3 commits
ef63e68
3b3fa86
9f015b2
c171e6c
78782a8
23841ad
af98e61
7d2e10a
84a67e1
9c7b4bb
ec3ea75
0b02ad9
a949aca
56df031
e8b7111
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| # ComputeCrackTipEnrichmentIncrementalStrain | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we rename this Material to
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should not. It has the same structure as |
||
|
|
||
| !syntax description /Materials/ComputeCrackTipEnrichmentIncrementalStrain | ||
|
|
||
| # Description | ||
|
|
||
| The displacement field contains both the standard and the enrichment solution. The | ||
| `ComputeCrackTipEnrichmentIncrementalStrain` is inherited from '`ComputeCrackTipEnrichmentSmallStrain` to allow nonlinear material models, and is applicable only to small-strain problems. | ||
donggiang marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| !syntax parameters /Materials/ComputeCrackTipEnrichmentIncrementalStrain | ||
|
|
||
| !syntax inputs /Materials/ComputeCrackTipEnrichmentIncrementalStrain | ||
|
|
||
| !syntax children /Materials/ComputeCrackTipEnrichmentIncrementalStrain | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,76 @@ | ||
| //* This file is part of the MOOSE framework | ||
| //* https://www.mooseframework.org | ||
| //* | ||
| //* All rights reserved, see COPYRIGHT for full restrictions | ||
| //* https://github.com/idaholab/moose/blob/master/COPYRIGHT | ||
| //* | ||
| //* Licensed under LGPL 2.1, please see LICENSE for details | ||
| //* https://www.gnu.org/licenses/lgpl-2.1.html | ||
|
|
||
| #pragma once | ||
| // #include "ComputeStrainBase.h" | ||
donggiang marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| #include "ComputeIncrementalStrainBase.h" | ||
| #include "Material.h" | ||
| #include "RankTwoTensor.h" | ||
| #include "RankFourTensor.h" | ||
| #include "RotationTensor.h" | ||
| #include "Assembly.h" | ||
| #include "CrackFrontDefinition.h" | ||
| #include "EnrichmentFunctionCalculation.h" | ||
|
|
||
| /** | ||
| * ComputeIncrementalStrain defines a strain increment and rotation increment (=1), for small | ||
| * strains. | ||
| */ | ||
| class ComputeCrackTipEnrichmentIncrementalStrain : public ComputeIncrementalStrainBase, | ||
| public EnrichmentFunctionCalculation | ||
| { | ||
| public: | ||
| static InputParameters validParams(); | ||
|
|
||
| ComputeCrackTipEnrichmentIncrementalStrain(const InputParameters & parameters); | ||
| virtual ~ComputeCrackTipEnrichmentIncrementalStrain() {} | ||
| virtual void computeProperties() override; | ||
|
|
||
| protected: | ||
| /// enrichment displacement | ||
| std::vector<Real> _enrich_disp; | ||
|
|
||
| /// gradient of enrichment displacement | ||
| std::vector<RealVectorValue> _grad_enrich_disp; | ||
| std::vector<RealVectorValue> _grad_enrich_disp_old; | ||
|
|
||
| /// enrichment displacement variables | ||
| std::vector<std::vector<MooseVariableFEBase *>> _enrich_variable; | ||
|
|
||
| /// the current shape functions | ||
| const VariablePhiValue & _phi; | ||
|
|
||
| /// gradient of the shape function | ||
| const VariablePhiGradient & _grad_phi; | ||
|
|
||
| const MaterialProperty<RankTwoTensor> & _mechanical_strain_old; | ||
donggiang marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| const MaterialProperty<RankTwoTensor> & _total_strain_old; | ||
| MaterialProperty<RankTwoTensor> & _grad_disp_tensor; | ||
|
||
| MaterialProperty<RankTwoTensor> & _small_strain; | ||
| MaterialProperty<RankTwoTensor> & _grad_enrich_disp_tensor; | ||
| const MaterialProperty<RankTwoTensor> & _grad_disp_tensor_old; | ||
| const MaterialProperty<RankTwoTensor> & _small_strain_old; | ||
| const MaterialProperty<RankTwoTensor> & _grad_enrich_disp_tensor_old; | ||
|
|
||
| private: | ||
| /// enrichment function value | ||
| std::vector<Real> _B; | ||
| /// derivatives of enrichment function respect to global cooridnate | ||
| std::vector<RealVectorValue> _dBX; | ||
| /// derivatives of enrichment function respect to crack front cooridnate | ||
| std::vector<RealVectorValue> _dBx; | ||
| /// enrichment function at node I | ||
| std::vector<std::vector<Real>> _BI; | ||
| /// shape function | ||
| const std::vector<std::vector<Real>> * _fe_phi; | ||
| /// gradient of shape function | ||
| const std::vector<std::vector<RealGradient>> * _fe_dphi; | ||
| NonlinearSystem * _nl; | ||
| const NumericVector<Number> * _sln; | ||
| }; | ||
Uh oh!
There was an error while loading. Please reload this page.