Skip to content

Conversation

@kmokstad
Copy link
Contributor

@kmokstad kmokstad commented May 3, 2016

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.

PoroFracture.C Outdated


/*!
This method calculates the anisotropic peremeability for the broken solid
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

permeabilty

@akva2
Copy link
Member

akva2 commented May 25, 2016

vennligst inkluder en fiks for

In file included from /var/lib/jenkins/jobs/IFEM-PR-builder/workspace/deps/IFEM-OpenFrac/FractureElasticityVoigt.C:14:
/var/lib/jenkins/jobs/IFEM-PR-builder/workspace/deps/IFEM-OpenFrac/FractureElasticityVoigt.h:14:9: warning: '_FRACTURE_ELASTICITY_VOIGT_H' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
#ifndef _FRACTURE_ELASTICITY_VOIGT_H
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/jenkins/jobs/IFEM-PR-builder/workspace/deps/IFEM-OpenFrac/FractureElasticityVoigt.h:15:9: note: '_FRACTURE_ELASTICITY_VOIGH_H' is defined here; did you mean '_FRACTURE_ELASTICITY_VOIGT_H'?
#define _FRACTURE_ELASTICITY_VOIGH_H
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
        _FRACTURE_ELASTICITY_VOIGT_H

vil ikke røre brancher du holder som gissel..

@kmokstad
Copy link
Contributor Author

jenkins build this please

Copy link
Member

@akva2 akva2 left a 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

poro

Copy link
Contributor Author

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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

poro

Copy link
Contributor Author

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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

at?

Copy link
Contributor Author

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,
Copy link
Member

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.

Copy link
Contributor Author

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.


SIMExplPhaseField::SIMExplPhaseField (SIMoutput* gridOwner)
{
myHeading = "Explcit phase field";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

explicit

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

bool SIMExplPhaseField::parse (const TiXmlElement* elem)
{
const char* value = utl::getValue(elem,"phasefield");
if (!value) return false;
Copy link
Member

@akva2 akva2 Feb 13, 2018

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.

Copy link
Contributor Author

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.

@akva2
Copy link
Member

akva2 commented Feb 13, 2018

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.

@kmokstad
Copy link
Contributor Author

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?

@akva2
Copy link
Member

akva2 commented Aug 24, 2018

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

…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
@akva2
Copy link
Member

akva2 commented Sep 6, 2018

jenkins build this ifem=286 ifem-poroelasticity=27 valgrind please

2 similar comments
@akva2
Copy link
Member

akva2 commented Sep 6, 2018

jenkins build this ifem=286 ifem-poroelasticity=27 valgrind please

@akva2
Copy link
Member

akva2 commented Sep 6, 2018

jenkins build this ifem=286 ifem-poroelasticity=27 valgrind please

@kmokstad kmokstad force-pushed the poro-fracture2 branch 2 times, most recently from 039bc48 to 5ee0407 Compare September 6, 2018 21:35
@kmokstad
Copy link
Contributor Author

kmokstad commented Sep 7, 2018

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.

@akva2
Copy link
Member

akva2 commented Sep 7, 2018

If I

  • adjust ngauss to 3
  • adjust Gc to values more aligned to the return energies

it runs and looks sane. of course, i'm not really sure what's supposed to happen in this case though.

@kmokstad
Copy link
Contributor Author

kmokstad commented Sep 8, 2018

jenkins build this please

@kmokstad
Copy link
Contributor Author

kmokstad commented Sep 8, 2018

jenkins build this please

kmokstad and others added 5 commits September 8, 2018 12:06
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.
@kmokstad
Copy link
Contributor Author

kmokstad commented Sep 8, 2018

jenkins build this please

@kmokstad kmokstad merged commit 0ba13d8 into OPM:master Sep 8, 2018
@kmokstad kmokstad mentioned this pull request Sep 8, 2018
@kmokstad
Copy link
Contributor Author

kmokstad commented Sep 8, 2018

The last comments above (from Sep 2 and Sep 7) applies to commits which now are placed in #37 instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants