Topic: Phase-field code for fracture (staggered scheme).

Hello, I re-post this topic that I submitted before in the Modules/Add-Ons. Perhaps it would be better to have it here. Thank you.


Dear all,

I am trying to model a coupled physics problem corresponding to a phase-field model for fracture.

The problem comes from the weak form of a coupled physics problem, coupling elastic and fracture energies.
Therefore, by interpolating over two filed variables, one gets two types of finite elements. One of them corresponds to the elastic problem and another to the fracture one. This both are coupled by a "phase-field" variable, acting as a degree of freedom in the fracture element.

Regarding implementational aspects, I am interested in a "staggered" scheme (although there are outsise monolithic versions for this). The staggered scheme, means that the problem is pseudo-decoupled and it solves first for the elastic problem and then for the fracture one, i.e., in a sequential manner. This is done using a Newton-raphson scheme on each problem, the Figure attached might help for understanding of those not very familiar with this.

How likely is that this can be implemented in OOFEM?

If this has been already done in OOFEM, an example with a very short description on how this has been done would be highly appreciated.

I am particularly interested in knowing the ingredients to perform this task, since I have done this in a non-Object-Oriented fashion. However, I would like to know how can I do this in OOFEM since I would like to become a user. OOFEM, looks like a very attractive option to have this implemented for further development given the nice capabilities of the software and perhaps more important, release this method so people can actually use it!.

Best regards,
/L.

Post's attachments

Screen Shot 2018-05-31 at 23.09.18.png 38.92 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

2

Re: Phase-field code for fracture (staggered scheme).

Hi,
there is a similar scheme already implemented in OOFEM for thermo-mechanical analysis, for example. In this case, the temperature field (scalar field) is computed by a thermal analysis and thermal field is passed to mechanical problem, where temperature field is used to evaluate thermal strains.
For this purpose, we have a staggered solver, that implements a sequence of sub-problems. At present, the staggered solver assumes one-way coupling, so that the result of second model do not affect the response of the first, but such a iteration loop can be introduced easily.
The staggered solver (StaggeredSolver class) creates instances of individual sub-problems and loops over them in a sequential order. Individual sub-problems can export their results (spatial fields), so that the exported fields are accessible by other sub-problems (this is done via FieldManager class) and the concept can be extended easily to other types.
You can have a look on example "nonstat_nonlin_01" located in tests/tmsm directory for an illustration. I would suggest to debug it in oofem to see, how it actually works (debug on relatively high level).
The example consist of three files:
- nltrans_nonlin.in - input for staggered analysis, oofem should be started with this input deck
- nltrans_nonlin.in.sm - input for mechanical part
- nltrans_nonlin.in.tm - input for thermal part

Hope that it will help,
Borek

Re: Phase-field code for fracture (staggered scheme).

bp wrote:

Hi,
there is a similar scheme already implemented in OOFEM for thermo-mechanical analysis, for example. In this case, the temperature field (scalar field) is computed by a thermal analysis and thermal field is passed to mechanical problem, where temperature field is used to evaluate thermal strains.
For this purpose, we have a staggered solver, that implements a sequence of sub-problems. At present, the staggered solver assumes one-way coupling, so that the result of second model do not affect the response of the first, but such a iteration loop can be introduced easily.
The staggered solver (StaggeredSolver class) creates instances of individual sub-problems and loops over them in a sequential order. Individual sub-problems can export their results (spatial fields), so that the exported fields are accessible by other sub-problems (this is done via FieldManager class) and the concept can be extended easily to other types.
You can have a look on example "nonstat_nonlin_01" located in tests/tmsm directory for an illustration. I would suggest to debug it in oofem to see, how it actually works (debug on relatively high level).
The example consist of three files:
- nltrans_nonlin.in - input for staggered analysis, oofem should be started with this input deck
- nltrans_nonlin.in.sm - input for mechanical part
- nltrans_nonlin.in.tm - input for thermal part

Hope that it will help,
Borek

Dear Borek,
Thank you so much for your detailed answer. I will look at it.
Best,
/L.

Re: Phase-field code for fracture (staggered scheme).

bp wrote:

Hi,
there is a similar scheme already implemented in OOFEM for thermo-mechanical analysis, for example. In this case, the temperature field (scalar field) is computed by a thermal analysis and thermal field is passed to mechanical problem, where temperature field is used to evaluate thermal strains.
For this purpose, we have a staggered solver, that implements a sequence of sub-problems. At present, the staggered solver assumes one-way coupling, so that the result of second model do not affect the response of the first, but such a iteration loop can be introduced easily.
The staggered solver (StaggeredSolver class) creates instances of individual sub-problems and loops over them in a sequential order. Individual sub-problems can export their results (spatial fields), so that the exported fields are accessible by other sub-problems (this is done via FieldManager class) and the concept can be extended easily to other types.
You can have a look on example "nonstat_nonlin_01" located in tests/tmsm directory for an illustration. I would suggest to debug it in oofem to see, how it actually works (debug on relatively high level).
The example consist of three files:
- nltrans_nonlin.in - input for staggered analysis, oofem should be started with this input deck
- nltrans_nonlin.in.sm - input for mechanical part
- nltrans_nonlin.in.tm - input for thermal part

Hope that it will help,
Borek


Dear Borek,

you suggest to debug the code at a relatively high level (I guess starting from the INP file? ). Which tool do you recommend for this purpose?. I'd like to understand the structure of OOFEM. Any post where you guys have information about how to do this? Say for instance, a linear static 1D analysis?
Thanks,
/L.

Re: Phase-field code for fracture (staggered scheme).

Hi,

I am going to commit the phase-field into oofem soon. You can find it also here https://github.com/nitramkaroh/phaseField
The name of mode is idmmicromorphic.C, it is little bit more general than brittle phase field, but you can obtain it by a specific choice of parameters.

Martin