-
Notifications
You must be signed in to change notification settings - Fork 8
Poroelastic fracture, with broken permeability tensor #4
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
Conversation
PoroFracture.C
Outdated
|
|
||
|
|
||
| /*! | ||
| This method calculates the anisotropic peremeability for the broken solid |
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.
permeabilty
|
vennligst inkluder en fiks for vil ikke røre brancher du holder som gissel.. |
010d7ee to
749d85c
Compare
749d85c to
89dc524
Compare
a51f1e4 to
488ac19
Compare
488ac19 to
02ce760
Compare
|
jenkins build this please |
akva2
left a comment
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.
Some doxy suggestions
PoroFracture.C
Outdated
| //! | ||
| //! \author Knut Morten Okstad / SINTEF | ||
| //! | ||
| //! \brief Integrand implementations for elasticity problems with fracture. |
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.
poro
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.
Fixed
|
|
||
|
|
||
| /*! | ||
| \brief Class representing the integrand of elasticity problems with fracture. |
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.
poro
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.
Fixed
PoroFracture.h
Outdated
| virtual std::string getField2Name(size_t i, const char* prefix) const; | ||
|
|
||
| protected: | ||
| //! \brief Computes the elasticity matrices for a quadrature point. |
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?
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.
yes, fixed
| //! \param[in] elem_sizes Size of each basis on the element | ||
| //! \param[in] basis_sizes Size of each basis on the patch level | ||
| //! \param elmInt The local integral object for current element | ||
| virtual bool initElement(const std::vector<int>& MNPC, |
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.
som sagt i møtet; initElement har en mixed-overload men det er ingen evalIntMx. men jeg ser nå at det bruker default overload'en (kall non-mixed) så det bør være okay.
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.
Ja, jeg mener å huske at -mixed var operativt når Eivind drev og prøvde for noen år siden.
Jeg har kun en input-file liggende Miehe71.xinp i Test-katalogen, men intet test-opsett forøvring.
02ce760 to
3e05502
Compare
SIMExplPhaseField.C
Outdated
|
|
||
| SIMExplPhaseField::SIMExplPhaseField (SIMoutput* gridOwner) | ||
| { | ||
| myHeading = "Explcit phase field"; |
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.
explicit
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.
Fixed.
SIMExplPhaseField.C
Outdated
| bool SIMExplPhaseField::parse (const TiXmlElement* elem) | ||
| { | ||
| const char* value = utl::getValue(elem,"phasefield"); | ||
| if (!value) return false; |
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.
this doesn't seem right. we are passed all subtags of <simulation>, not all will match phasefield and returning false here will halt parsing.
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.
Indeed wrong. Should here forward to parent-class method for all other tags. Don't know when that vanished but fixed now. Probably something went wrong during a rebase at one point.
|
the explicit phase field construct is rather problematic for mixed. it uses the model from the elasticity problem, which is mixed. while i can fix the projection to only project onto basis 1, it's not fixable when extracting the patch dependencies. as we are in a SIMdependency scope there, i do not have access to the additional MADOF required for a single component on first basis (which has to sit in the elasticity SIM). i see no clean way around setting up a model in the phase sim itself. |
3e05502 to
541ef72
Compare
|
Have to think about that. I see the program crashes now running with -explcrack and -mixed, while it runs (but diverges) without the -mixed option. I guess these two options have never been combined before, unless @TheBB remembers doing so back in 2016? |
|
fixed explicit phase field plus mixed. it's not entirely pretty as this is not using the established mechanisms to handle this (fields). you need https://github.com/akva2/IFEM-OpenFrac/tree/fix_poro_expl and https://github.com/akva2/IFEM/tree/fix_expl_mixed |
541ef72 to
19bf7ae
Compare
19bf7ae to
f3882e6
Compare
…asticity without the phase-field coupling, but still with the strain energy split
… point, and the broken permeability tensor based on phase field and deformation state
Fixed: Removed extraction of element velocity and accelereation in PoroFracture::initElement, it is done by the parent class method.
and new command-line options -explcrack to activate it
9828b4f to
8e7f195
Compare
|
jenkins build this ifem=286 ifem-poroelasticity=27 valgrind please |
2 similar comments
|
jenkins build this ifem=286 ifem-poroelasticity=27 valgrind please |
|
jenkins build this ifem=286 ifem-poroelasticity=27 valgrind please |
039bc48 to
5ee0407
Compare
|
With the last change here (that is, we specify an additional MADOF also when the phase field solver is in the loop, and not only with an explicit phase field), and yes, the phase-field solver has to share grid with the poro-elastic solver, only specifying zero dofs pr node for the second basis and 1 dofs per node for the first, then with the OPM/IFEM#289 fix Miehe71.xinp with -poro -mixed runs through without valgrind issues or divergence. But the solution is totally wrong still (look at the phase field in GLview). But that is probably due to other things. I think the use of Field for the phase-field dependency when mixed should be tried out next, to see if that gives a better solution. In that case the current implementation is still buggy. If not, we have a problem with the formulation as such. |
|
If I
it runs and looks sane. of course, i'm not really sure what's supposed to happen in this case though. |
372347c to
088dc66
Compare
|
jenkins build this please |
088dc66 to
0811794
Compare
|
jenkins build this please |
Filter out the pressure variables in the getElementSolution method.
such that we don't have to override the getLocalIntegral methods. Using override keyword for reimplemented virtual methods.
0811794 to
0ba13d8
Compare
|
jenkins build this please |
|
The last comments above (from Sep 2 and Sep 7) applies to commits which now are placed in #37 instead. |
This one replaces #3. Contains in addition a method for calculation of the anisotropic permeability of the cracked material, based on Miehe (2015), Part III. Please take a look at it.
The PoroElasticity class now needs a virtual version of evalPermeabilityMatrix in which the new method is used.