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

Mechanical phasefield process #1813

Closed
wants to merge 4 commits into
base: master
from

Conversation

Projects
None yet
3 participants
@xingyuanmiao
Contributor

xingyuanmiao commented May 19, 2017

The mechanical phase-field process was implemented. Currently, the implementation has a 3D test for crack beam under tension. Next step will be adding two longer tests: tension of single-edge-notch test; shear of single-edge-notch test .

@xingyuanmiao xingyuanmiao force-pushed the xingyuanmiao:phasefield_wip branch from 5d7f2a9 to 479f1a7 May 19, 2017

.specialFunction(t, x_position, eps, strain_energy_tensile,
sigma_tensile, sigma_compressive, C_tensile,
C_compressive, sigma_real, degradation);
}

This comment has been minimized.

@nagelt

nagelt May 22, 2017

Member

@xingyuanmiao I'm wondering .. is the computeConstitutiveRelation call necessary? We re-compute everything inside specialFunction, don't we? Assembly uses the results from specialFunction. The sigma and C from from compConstRel are without physical meaning. If we can avoid double calculations, kick out the computeConstitutiveRelation..

ip_data.sigma_prev.resize(kelvin_vector_size);
ip_data.eps.resize(kelvin_vector_size);
ip_data.eps_prev.resize(kelvin_vector_size);
ip_data.C.resize(kelvin_vector_size, kelvin_vector_size);

This comment has been minimized.

@nagelt

nagelt May 22, 2017

Member

Since assembly uses C_real (i.e. a weighted combination of C+ and C-), we may not need C at all. It can go. Check if similar things hold for sigma (redundant by sigma_real? Then sigma could be the name for sigma_real)

history_variable = strain_energy_tensile;
Kdu.noalias() = Kud.transpose();
}
else

This comment has been minimized.

@nagelt

nagelt May 22, 2017

Member

If you have drastic convergence issues you can decouple the system (and restore convexity) by updating H only once a global increment has converged. Then K_du is always zero. But I guess this would be better done via staggered coupling and controlling the coupling iterations, as in that case monolithic coupling only serves to increase the equation system.
So: Nothing to do here.
@endJunction FYI as an update on today's discussion. Btw, how far is staggered scheme/coupling manager? Processes of immediate interest for sequential coupling are T-(H)M, Phase field.

for (auto const& ip_data : _ip_data)
{
cache.push_back(ip_data.eps[component]);

This comment has been minimized.

@nagelt

nagelt May 22, 2017

Member

Kelvin mapping missing (see stress routine).

{{< img src="../beam.png" >}}
{{< img src="../beam_d.png" >}}
{{< img src="../beam_u.png" >}}

This comment has been minimized.

@nagelt

nagelt May 22, 2017

Member

again, the scaling of the images makes it difficult to see anything ...

for (unsigned ip = 0; ip < n_integration_points; ip++)
{
_ip_data[ip].pushBackState();
if (_ip_data[ip].history_variable_prev <

This comment has been minimized.

@nagelt

nagelt May 22, 2017

Member

The if is not needed. Push back probably always has to happen. The if is done above and determines which value is in history_variable (either history_variable_prev or the new tensile SED).

@xingyuanmiao xingyuanmiao force-pushed the xingyuanmiao:phasefield_wip branch 2 times, most recently from 73b9920 to d603e1a May 24, 2017

@endJunction

This comment has been minimized.

Member

endJunction commented May 31, 2017

@xingyuanmiao You need to add aligned memory allocation like I have shown you in endJunction@562f0ae
These are used in all current processes (and required), otherwise the program crashes; Cannot do performance analysis on this until this is fixed.

@xingyuanmiao xingyuanmiao force-pushed the xingyuanmiao:phasefield_wip branch from d603e1a to d0b0bf9 Jun 1, 2017

@nagelt

This comment has been minimized.

Member

nagelt commented Jun 13, 2017

@xingyuanmiao Has this alignment issue been fixed?
@endJunction Do we have a performance test?

@endJunction

This comment has been minimized.

Member

endJunction commented Jul 17, 2017

Closed as discussed in the developer meeting.

@endJunction endJunction removed the WIP 🏗 label Jul 17, 2017

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