prisms-center / phasefield Goto Github PK
View Code? Open in Web Editor NEWPRISMS-PF: An Open-Source Phase-Field Modeling Framework
Home Page: https://prisms-center.github.io/phaseField/
License: Other
PRISMS-PF: An Open-Source Phase-Field Modeling Framework
Home Page: https://prisms-center.github.io/phaseField/
License: Other
Possible issue with like 271 of equations.h.
I'm triple-checking the derivation and will fix ASAP if necessary.
Seems as though there is a issue with the timer function that is causing the crash.
more than one partial specialization matches the template argument list of class "dealii::FEEvaluationAccess<1, 2, 2, 1, double>".
Dear developers:
I have found that there are four extra lines in CHAC_anisotropy and CHAC_anisotropyRegularized.
They are Lines 38-41 at the ICs_and_BCs.h:
r=p.distance(Point<dim>(spanX/3.0,spanY/3.0)); scalar_IC = 0.5*(1.0-std::tanh((r-spanX/5.0)/(3*dx))); r=p.distance(Point<dim>(3.0*spanX/4.0,3.0*spanY/4.0)); scalar_IC += 0.5*(1.0-std::tanh((r-spanX/12.0)/(3*dx)));
When the dimension of the problem is set to be 3, then they will cause an error, since the dim in above code is refined to be 2.
Currently, if the first checkpoint occurs between the start of the simulation and when the first nucleus appears in a simulation with nucleation, no checkpoints are created.
Solution: Increment the checkpoint counter during the artificial time stepping in the nucleation function just like the time step counter and output counters are incremented.
Specifically, an option for logarithmic spacing was requested/suggested.
Currently inhomogenous Dirichlet BCs (i.e. non-zero Dirichlet BCs) can't be directly handled for elliptic PDEs. Instead, we set them in the initial condition and then do Newton-style updates. However, this is more complicated than is necessary.
See this recent deal.II thread on how to go forward:
https://groups.google.com/forum/#!searchin/dealii/matrixfree%7Csort:date/dealii/g2bU8SCK24g/NfRiJuXYCAAJ
Above 1,000,000 iterations the filenames of the outputs have non-numerical characters in the hundred-thousands place. Also, they are not able to be loaded into VisIt (either with the original filename or if I manually fix them).
The problem can be found on the _single_precipitate branch of the private repo. I'm not copying a branch to the public repo because I noticed the issue in the singlePrecipitate application. Presumably, it affects all of the applications.
These should be independently controllable, currently, they're set to the values for the RHS residual.
Hi folks,
I'm trying to compile the cahnHilliard example. I have deal II installed and after successfully running cmake, I get the following error with make:
/home/workgroups/reit/packages/phase-field/phaseField-1.0/applications/cahnHilliard/../../src/models/coupled/generalized_model_functions.h:1026:60: error: 'MPI_Send' was not declared in this scope
MPI_Send(&numNuclei, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);
I get similar errors for MPI_Barrier, MPI_Recv. MPI_DOUBLE, MPI_INT and more.
I have the MPI environment set up right; I have tested it with different combinations of intel and openmpi and no luck.
Any pointers?
Thank you
Dear Steve:
A new example of using prisms-pf to simulate dendritic-growth has been conducted. The results are as follows:
2D
3D
Thank you so much!
My code is here:
code
However, currently, I cannot make a pull request, since I made some changes in the basic framework of prisms-pf.
For example, the governing equations of dendritic growth need two sets of SolutionSet: the current one solutionSet and the last one oldSolutionSet. So I change the solutionSet in the functions of computeRHS, getRHS and residualRHS to a vector containing solutionSet and oldSolutionSet.
I hope the main framework of prisms-pf can add a feature of receiving several sets of solutions in the RHS construction (or it has already such a feature?), so I can change my code and make a pull request to the main branch.
Xin-Bo Qi
There are two pdfs files in the precipitateEvolution applications folder, formulation_precipitateEvolution.pdf and precipitateEvolution.pdf. They both appear to have the same roughly the same content, although the commit comments suggest precipitateEvolutioin.pdf is an update to formulation_precipitateEvolution.pdf. To avoid confusion, I would suggest removing one of the pdf files.
An ellipsoidal shell option has been developed, but isn't merged in get. A Kelly error estimator option is currently commented out, it still needs some work. @wband suggested one where the user sets a threshold for the magnitude of the gradient of selected variables, which should be easy to implement.
Please add any other ideas/requests here.
Under section 8) Creating Custom Applications, I would suggest adding emphasis to the fact that the folder for the new project must be in the applications folder, otherwise the transferred code will not be able to find the files it needs to be able to run.
The refine factor only sets up the very initial mesh where the initial conditions are first applied. It just has to be fine enough that it picks up the features that need further refinement.
Need to add a note in the parameters.in explanation of refine factor to tell this to users. I should also add a note in the user guide.
Add the option for an automatic checkpoint system that saves to a vtk file periodically. In the case of a crash, this vtk file could be read in (unlike vtu files which would have to be converted to vtk files to be read). The larger size of the vtk files wouldn't matter much because the dataset would be continually overwritten once a new checkpoint is reached.
h/t to @erikhans who had the idea
One can add:
#define skipPrintSteps [some number]
to not print out every time step. Currently, this isn't in the documentation (or in many of the example applications).
Right now if one selects to load from a checkpoint in the parameters.in file but one doesn't exist, the code seg faults. There should be a sensible error message instead.
Currently, they have blocks of similar code that could be put into a separate method.
Subclass of generalized model? This would allow the user to add new methods or override the methods of the parent class.
stress visualization for PF
MPI issue with debug mode with new version of libraries
In v2.0 (and maybe earlier versions too), if you run a simulation in debug mode, it ends with a subscriptor error. This doesn't impact the solution, it just means that there may be a memory leak.
I'm looking into it now.
h/t to @jpluce for noticing this
Called compress(VectorOperation::insert), but the element received from a remote processor, value 0.03072, does not match with the value 0.03084 on the owner processor 0
If you are building deal.II from source, you must install the p4est library before installing deal.II. If you are downloading a binary package (the recommended option for Macs), p4est already is in the package, so you don't have to worry about it.
The p4est library can be downloaded at:
http://www.p4est.org/ (download the tarball of the latest release)
Install it using the configure script that comes in the tarball:
./configure --prefix=/path/to/p4/ --enable-mpi
make
make install
When installing deal.II, make sure to pass it the flag that links it to p4est:
cmake -DCMAKE_INSTALL_PREFIX=/path/to/dealII -DP4EST_DIR=/path/to/p4/ -DDEAL_II_WITH_P4EST=ON -DDEAL_II_WITH_MPI=ON /path/to/dealIIsources/
make
make install
To verify that p4est is enabled in your installation of deal.II, you can open "summary.log" in the deal.II build directory and check to see if it says "DEAL_II_WITH_P4EST set up with external dependencies". If so, the installation includes p4est. If the log file instead says "DEAL_II_WITH_P4EST = OFF", then there was an issue in linking deal.II with your p4est installation.
Finally, some users have had issues installing deal.ii with the Intel compiler. We recommend using the GNU compiler instead.
The code doesn't work properly if one of the refinement criterion fields is a vector field. We need to generalize adaptiveRefineCriterion() in refine.cc for vector fields.
LAPACK isn't actually needed for PRISMS-PF
deal.II doesn't support distributed 1D triangulations. If we want to support true 1D calculations we would need to add support for a non-distributed triangulation. Currently, 1D simulations should be implemented as degenerate 2D simulations. The PRISMS-PF documentation should be updated to reflect this.
We haven't run a complete set of tests if multiple variables are vector fields. However, some initial investigations show that there might be an indexing error. We're currently investigating the problem.
I don't think this function is supported anymore in the version 8.5 pre-release, although I haven't seen any documentation to that effect.
Going down to one may improve performance.
At least:
update version_changes.txt
Reference the new anisotropy app in the user guide
add a pdf of the exercises
I should be able to use the "write_vtu_in_parallel" method. I'm not sure how this compares performance wise, but it would make file management much easier.
Currently, PRISMS-PF needs to be recompiled if any parameter is changed. We're planning to move to text-based input files so that simple parameter changes do not require recompilation.
In the deal.II step-48 tutorial problem, the authors recommend against using ConstraintMatrix objects in matrix free calculations for performance reasons. Look into switching over to the data structure they use there.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.