Giter Site home page Giter Site logo

ornl / additivefoam Goto Github PK

View Code? Open in Web Editor NEW
14.0 14.0 4.0 83 KB

Heat and mass transfer software for simulation of additive manufacturing, based on OpenFOAM

License: Other

C 42.71% C++ 52.42% Shell 4.86%
additive-manufacturing heat-transfer openfoam

additivefoam's People

Contributors

colemanjs avatar godoywf avatar kincaidkc avatar streeve avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

additivefoam's Issues

Undesired behavior of heat source normalization at mesh boundaries

The heat source normalization scales the total input power based in the integrated volume. This is a reasonable approach when the laser is completely contained in the physical domain, however, not when we start to scan outside of the mesh.

Since we have analytical forms of the normalization factors, when should probably calculate this based on the volume of the heat source in the physical domain. The rescaling to this normalized volume should fall out naturally.

Brief notes from building and running things on an HPC cluster

So, I took a shot at running/building AdditiveFoam on one of the HPC systems at LLNL that's a TOSS4 (RHEL8-based) system.

Thanks to @colemanjs help I was able to get everything built and able to get the tests up and running.

I just wanted to note a few quick things that could be helpful for other users.

While OpenFoam claims you need quite a few things such as paraview, I did not find that necessary to get things running. You only need their TPLs located at this directory: https://github.com/OpenFOAM/ThirdParty-10

For OpenFoam, you'll want to modify their OpenFoam/etc/bashrc file. @colemanjs provided me the following info that was helpful to get up and running with MPICH/MVAPICH and GCC code.

Around the WM_MPLIB line you can modify things to:

export MPI_ARCH_FLAGS="-DMPICH_SKIP_MPICXX"
export MPI_ARCH_INC="-I$MPI_ROOT/include"
export MPI_ARCH_LIBS="-L$MPI_ROOT/lib -lmpich -lrt"
export WM_MPLIB=SYSTEMMPI

and then set the following line in that same file:

export FOAM_SIGFPE=unset

Next, running OpenFOAM ./Allwmake just build things in serial. You'll definitely want to remember to add that -j flag in there for parallel builds.

For AdditiveFoam, if you're running the examples/tutorials depending on how your HPC system is set-up you might have to modify the OpenFoam/bin/tools/RunFunctions file where it uses mpirun and sub it out for your systems appropriate job queue run commands such as srun on a SLURM job queue system or jsrun on a LSF job queue system.

Incorrect Normalization Implementation in modifiedSuperGaussian

const dimensionedScalar V0
(
"V0",
dimVolume,
s.x()*s.y()*s.z()piFoam::tgamma(1.0 + 2.0/k_)*Foam::tgamma(1.0 + 2.0/m_)*Foam::tgamma(1.0 + 2.0/k_)
/ Foam::tgamma(1.0 + 3.0/m_)
);

should be:
const dimensionedScalar V0
(
"V0",
dimVolume,
s.x()*s.y()*s.z()piFoam::tgamma(1.0 + 2.0/k_)*Foam::tgamma(1.0 + 1.0/m_)*Foam::tgamma(1.0 + 2.0/m_)
/ Foam::tgamma(1.0 + 3.0/m_)
);

Incorrect boundary value in marangoni boundary condition

The snGrad() function in the marangoni boundary conditions is correct, and therefore, equating the viscous stress to the tangential temperature gradient at the boundary condition is correct in the solver. However, the evaluation of the velocity field on the surface should be done using a slip condition instead of what is currently implemented. Here is a COMSOL test case to verify implementation:
https://www.comsol.com/blogs/modeling-marangoni-convection-with-comsol-multiphysics/

A test case for this boundary condition should be added in the pull request fixing this issue. Please use:
marangoni.zip

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.