KratosMultiphysics / Kratos

Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.
https://kratosmultiphysics.github.io/Kratos/
Other
1k stars 244 forks source link

Preprocess method for a CL allowed to set things in the Properties #3354

Closed RiccardoRossi closed 2 years ago

RiccardoRossi commented 5 years ago

I (and @frastellini ) have been discussing on some interesting usecase for the CL. Discussion started as part of #3030 but we agree that it does not belong there.

Essentially the idea is that there are situations in which one has a very complicated material behaviour (for example an RVE or a complex composite CL) which needs to do some preprocessing (common to all the CLs of the same type).

for example one may want to compute the Elasticity tensor for an RVE and then use it very many times (it will be the same for all CLs sharing the same RVE prototype) or the equivalent young modulus for a composite material. It MAY make sense to store this information by computing once for a given property (it is something that should never change, and be shared by all the CL instances which belong to a given property).

One way of achieving this could be to define a Preprocess method in the CL and to allow it to WRITE ON THE PROPERTIES. This method could be called ONCE in the whole simulation (andbe ensured to be threadsafe), for example on the prototype that is stored on the Properties array.

bodhinandach commented 5 years ago

I am supporting the preprocess idea as this can be essentially useful for geomechanical purposes. For instance, some geomechanics laws are historical dependent and advanced laws usually have Preconsolidation Pressure (Pc) or maximum historical pressure, which for sure govern the yield strength and other material behavior.

As for now, I can apply a constant Pc for all particles in my simulation. However, I am thinking that if we have such process that can compute the Pc at different locations of particles that will be cool. An initial stress induced by gravity acts on material points already at the beginning of the simulation - but no deformation. In comparison to reality, the stresses induced by gravity or other historical forces are already there (from ice age a lot of years ago) without any seeing deformation of the soil surface nowadays.

I just get one question. If in case the preprocess is made and can write the PROPERTIES, will that be possible to have it different for every particles, which is similar to RVE for every element, I guess? If PROPERTIES are suppose to be the same for the whole material, then the only way is to store that properties as private variables in the CL.

loumalouomega commented 5 years ago

I have been thinking, and maybe the easiest way is to implement a new method in the base CL class, like PreprocessProperties, which can be called from the read_materials_utility just after creating the law. This will imply like 10 lines of code in total and I think will be general enough.

In any case I think we should close #2919 first

pooyan-dadvand commented 5 years ago

Still I don't see clearly why we need to change properties from CL.... and if we need it from which CL? Why we can not call a Process which does this?

pooyan-dadvand commented 5 years ago

Forwarding to @KratosMultiphysics/design-committee

loumalouomega commented 5 years ago

Even not being in the subcommittee, common human beings can still add their point?

jcotela commented 5 years ago

@loumalouomega yes, as always.

msandre commented 5 years ago

Hi @RiccardoRossi, is this still active? We opened a discussion in the @KratosMultiphysics/design-committee, but at least I am not familiar with the context or the use cases. A function prototype and some explanation, e.g., interaction diagram, of some use cases would help to understand.

philbucher commented 4 years ago

is this still active?

pooyan-dadvand commented 4 years ago

Seeing it another time, I think this is a mapping rather than CL thing.

We may have a mapper which maps from CL (on the gauss points) to Properties (if is possible)

ddiezrod commented 2 years ago

@RiccardoRossi Is this still active or should we close it?

RiccardoRossi commented 2 years ago

we had no discussion since a very long time, so i guess we can close it