Comments (8)
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.
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 otherCoefficients
, or define custom projections for theGridFunctions
.2 - The fastest way to get something working is to define a
MixedBilinearForm
for each material, which has the material's specificForceOperator
, and anotherMixedBilinearForm
that has all materialForceOperators
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 ofMixedBilinearForms
and sums their element matrices to form anotherMixedBilinearForm
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.
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.
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.
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.
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.
Thanks Vladimir
from laghos.
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)
- NC or NURBS meshes HOT 3
- Definition of Q1D HOT 2
- R-Z coordinates with partial assembly HOT 1
- blast wave propagation HOT 2
- Other Equation of State in Laghos HOT 11
- Scaling Laghos / Picking number of processes/tasks HOT 1
- "spack install laghos" on LLNL quartz with gcc/8.3.1 is failing HOT 2
- Multi GPU runs HOT 4
- Excessive device memory wastage HOT 4
- Failing tests with Hypre-cuda and full assembly HOT 2
- Building Laghos on Crusher HOT 9
- Laghos in a workflow? HOT 11
- GPU run of verification result #5 does not match values in table HOT 2
- Question about Non-AMR and AMR version of Laghos
- 'laghos' cores when run against 'box01_hex.mesh' with perfect cube of ranks HOT 2
- CUDA-awareness question HOT 5
- Question about performance (mainly cuda code) HOT 52
- L2 space for the energy variable discretization HOT 1
- ResetTimeStepEstimate logic HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from laghos.