Coder Social home page Coder Social logo

multi-material implementation about laghos HOT 8 CLOSED

ceed avatar ceed commented on June 11, 2024
multi-material implementation

from laghos.

Comments (8)

vladotomov avatar vladotomov commented on June 11, 2024

Hi Sijoy,

1 - There probably isn't anything that you can directly, as these sums / products are very specific for the application. However you can always define new Coefficient classes that depend on other Coefficients, or define custom projections for the GridFunctions.

2 - The fastest way to get something working is to define a MixedBilinearForm for each material, which has the material's specific ForceOperator, and another MixedBilinearForm that has all material ForceOperators for the sum. As you say, this will do repeated calculations (but it will work). For something more efficient, you'll probably need to define something that goes over a set of MixedBilinearForms and sums their element matrices to form another MixedBilinearForm for the velocity equation.

3 - Yes, you will need material-specific energy mass matrices, so these must be stored in some structure. I don't think you can avoid the extra memory, unless you recompute every time the same thing.

4 - Currently we're not planning to extend Laghos to multiple materials and mixed zones. Sorry, there is no simple template.

Let us know how this goes, it would be great to see Laghos extended to multiple materials by an external user.

Thanks,
Vladimir

from laghos.

cjoycd avatar cjoycd commented on June 11, 2024

Dear Vladimir,
Thank you for your prompt comments, I will go ahead experimenting.

Regards,
--Sijoy

Hi Sijoy,

1 - There probably isn't anything that you can directly, as these sums / products are very specific for the application. However you can always define new Coefficient classes that depend on other Coefficients, or define custom projections for the GridFunctions.

2 - The fastest way to get something working is to define a MixedBilinearForm for each material, which has the material's specific ForceOperator, and another MixedBilinearForm that has all material ForceOperators for the sum. As you say, this will do repeated calculations (but it will work). For something more efficient, you'll probably need to define something that goes over a set of MixedBilinearForms and sums their element matrices to form another MixedBilinearForm for the velocity equation.

3 - Yes, you will need material-specific energy mass matrices, so these must be stored in some structure. I don't think you can avoid the extra memory, unless you recompute every time the same thing.

4 - Currently we're not planning to extend Laghos to multiple materials and mixed zones. Sorry, there is no simple template.

Let us know how this goes, it would be great to see Laghos extended to multiple materials by an external user.

Thanks,
Vladimir

from laghos.

cjoycd avatar cjoycd commented on June 11, 2024

Dear Vladimir,

Finally, I could implement the multi-material formulation. At present It is implemented with constant volume fraction and to full assembly (FA). Its seems to be working and done with all basic conservation checks. I would like to implement now the volume fraction update (using multi-material closure model described by Dobrev et al., Int. J. Num. Meth. Fluids, 82 (2016), pp. 689–706). I have a doubt here. The volume fractions are updated at each quadratic point. At t=0, they are interpolated from the the GridFunction. Later the volume fractions are updated at quadrature level. Is it sufficient to have a simple explicit update of volume fractions inside the UpdateQuadratureData module or is it necessary to integrate using higher order schemes as it is done for state vectors (S --> x,v,e). In both cases, I think the volume fraction update must take care, repetition of failed steps leading to additional storage of old volume fractions at quadrature points for a fresh calculation. Another issue is to plot the total mass specific energy [e = sum_k (rho_k * eta_k * e_k ) / rho]. Probably, I have to assign new energy ParGridFunction from existing quadrature values eta_k, rho_k & r_k and rho = sum_k (eta_k, rho_k). Is this right ?

Thanks for your help.

Regards
Sijoy C.D.

from laghos.

vladotomov avatar vladotomov commented on June 11, 2024

Hi Sijoy,

In the IJNMF paper, volume fractions (aka material indicators) are integrated in time using the same time integrator as the state vector, i.e., the indicator values become part of the state. Yes, repetition of failed steps can be handled the same way.

Yes, to visualize total mass specific internal energy e you must project to some new ParGridFunction using the existing quadrature point values; sounds right.

Great progress, send us some results!

Thanks,
Vladimir

from laghos.

cjoycd avatar cjoycd commented on June 11, 2024

Dear Vladimir,

I am facing a problem initializing the mixed zones in a computational domain. I have initialized basically three Vector GridFunctions (dim = no. of materials); one for volume fraction, other for density of each material and finally for energy of each material. These are initialized using VectorFunctionCoefficient (with functions supplemented say eta0, rho0 & e0). I have noticed the coefficients are sampled in the function supplied is for x,y,z locations at thermodynamics dofs. This is fine. However, while getting values at the quadrature points they are interpolated from these GridFunctions. For volume fractions it looks fine as one get a smooth variation of volume fraction max (1.0) to min (0.0) within the cell for each material at the quadrature points. However, at quadrature points the similar variation occurs for material densities and energies (which can be zero at times). What is required at a quadrature point is a non-zero or constant zone value for material density and energy whenever volume fraction of that material is non-zero. I had read in your IJNMF paper as some extended values to be managed at these locations wherever volume fraction for a material is > 0.0. If that is the case how it is exactly done ? Do we need to take care this at first step only ? For density as it is defined at the quadrature point at t=0 from a gridfunction and evolved at these points following strong mass conservation. How this can be done conservatively for energies ?

Thank you for your time in advance

Sijoy

from laghos.

vladotomov avatar vladotomov commented on June 11, 2024

Hello Sijoy,

Yes, in our IJNMF paper we use extended values for density and energy in the mixed zones. As written in section 4.1, this is done only at initial time. It does not affect the method at later times, hence the mass and energy are still conserved for each material in the evolution, compared to the initial values.

Thanks,
Vladimir

from laghos.

cjoycd avatar cjoycd commented on June 11, 2024

Thanks Vladimir

from laghos.

cjoycd avatar cjoycd commented on June 11, 2024

Dear Vladimir,

I could finally implement it..although the initialization is tricky.. It doesn't matter in most of the simulations as the mixed cell situations will arise after a remap-step. I just wanted a multi-material formulation is implemented & tested for a remap stage which hopefully will be implemented in future :).

Thank you for your support
--Sijoy C.D.

from laghos.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.