llnl / ampe Goto Github PK
View Code? Open in Web Editor NEWAdaptive Mesh Phase-field Evolution
License: Other
Adaptive Mesh Phase-field Evolution
License: Other
For binaries, Kim's mobilities rely on equilibrium composition, which depend on temperature only. It would be better to precompute those, parameterize c_eq(T) with a polynomial expansion in T, and give that as an input to AMPE
Currently adding v*dphi/dx only to one phase variable
Diffusion coefficients are scalar, so they could be of length 1 instead of qlen
There are configuration scripts for installing on Condos with the GNU compiler in both optimized and debug mode. However, the only CMake script for Condos has the path for the optimized settings hard-coded.
@jeanlucf22 Should there be a second CMake script for installing in debug mode, or should it try to auto-detect whether you're in optimized or debug mode? I'd be happy to take care of this as a first contribution.
With gcc/7.1.0, I am having the following error.
/home/knteran/test/spack/opt/spack/linux-rhel7-x86_64/gcc-7.1.0/openmpi-3.1.2-pnuiuz47gibllky53lmxymwnd4y42zjf/bin/mpic++ -O2 -Wall -Wextra -Wconversion -O2 -std=c++11 -O2 -std=c++11 -isystem -I/home/knteran/test/spack/opt/spack/linux-rhel7-x86_64/gcc-7.1.0/netcdf-4.6.1-iuxpr3oyui7ahalseslercht3huo4vg5/include -I. -I/home/knteran/ampe_build/birch-mpic++-gfortran-opt/base/SAMRAI/include -I/home/knteran/ampe_build/birch-mpic++-gfortran-opt/base/SAMRAI/source -I/home/knteran/ampe_build/birch-mpic++-gfortran-opt/base/sundials/include -I/home/knteran/test/spack/opt/spack/linux-rhel7-x86_64/gcc-7.1.0/hypre-2.14.0-tmhc465qt7hch4zalschzzlfc2hsyr7t/include -I/home/knteran/test/spack/opt/spack/linux-rhel7-x86_64/gcc-7.1.0/boost-1.64.0-nrijielw34755vhd76cqvngyl24arq7t/include -I/home/knteran/test/spack/opt/spack/linux-rhel7-x86_64/gcc-7.1.0/hdf5-1.10.3-3oaefhuqy5u7o4bfnnspu5fqffhph2pg/include -I/usr/local/include -I/home/knteran/test/spack/opt/spack/linux-rhel7-x86_64/gcc-7.1.0/netcdf-4.6.1-iuxpr3oyui7ahalseslercht3huo4vg5/include -DNDIM=2 -DGITVERSION="" -c /home/knteran/AMPE/source/FieldsInitializer.C -o FieldsInitializer.o
In file included from /home/knteran/AMPE/source/FieldsInitializer.C:36:0:
/home/knteran/AMPE/source/FieldsInitializer.h:85:4: error: ‘netCDF’ has not been declared
netCDF::NcVar& ncPhase,
^~~~~~
/home/knteran/AMPE/source/FieldsInitializer.h:85:17: error: expected ‘,’ or ‘...’ before ‘&’ token
netCDF::NcVar& ncPhase,
^
/home/knteran/AMPE/source/FieldsInitializer.C:43:17: error: ‘netCDF’ is not a namespace-name
using namespace netCDF;
^~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:43:23: error: expected namespace-name before ‘;’ token
using namespace netCDF;
^
/home/knteran/AMPE/source/FieldsInitializer.C: In member function ‘void FieldsInitializer::initializeLevelFromData(boost::shared_ptr<SAMRAI::hier::PatchLevel>, const string&, int)’:
/home/knteran/AMPE/source/FieldsInitializer.C:116:4: error: ‘NcFile’ was not declared in this scope
NcFile ncf( init_data_filename, NcFile::read );
^~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:116:4: note: suggested alternative: ‘ctime’
NcFile ncf( init_data_filename, NcFile::read );
^~~~~~
ctime
/home/knteran/AMPE/source/FieldsInitializer.C:117:8: error: ‘ncf’ was not declared in this scope
if( ncf.isNull() ){
^~~
/home/knteran/AMPE/source/FieldsInitializer.C:120:13: error: ‘ncf’ was not declared in this scope
int nvar=ncf.getVarCount();
^~~
/home/knteran/AMPE/source/FieldsInitializer.C:163:4: error: ‘NcVar’ was not declared in this scope
NcVar ncPhase;
^~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:163:4: note: suggested alternative: ‘char’
NcVar ncPhase;
^~~~~
char
/home/knteran/AMPE/source/FieldsInitializer.C:165:7: error: ‘ncPhase’ was not declared in this scope
ncPhase = ncf.getVar( "phase" );
^~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:165:7: note: suggested alternative: ‘ncclose’
ncPhase = ncf.getVar( "phase" );
^~~~~~~
ncclose
/home/knteran/AMPE/source/FieldsInitializer.C:169:10: error: expected ‘;’ before ‘ncEta’
NcVar ncEta;
^~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:171:7: error: ‘ncEta’ was not declared in this scope
ncEta = ncf.getVar( "eta" );
^~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:171:7: note: suggested alternative: ‘ncopts’
ncEta = ncf.getVar( "eta" );
^~~~~
ncopts
/home/knteran/AMPE/source/FieldsInitializer.C:176:10: error: expected ‘;’ before ‘ncTemp’
NcVar ncTemp;
^~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:178:7: error: ‘ncTemp’ was not declared in this scope
ncTemp = ncf.getVar( "temperature" );
^~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:178:7: note: suggested alternative: ‘ncerr’
ncTemp = ncf.getVar( "temperature" );
^~~~~~
ncerr
/home/knteran/AMPE/source/FieldsInitializer.C:187:13: error: expected ‘;’ before ‘ncv’
NcVar ncv=ncf.getVar( o.str() );
^~~
/home/knteran/AMPE/source/FieldsInitializer.C:188:11: error: ‘ncv’ was not declared in this scope
if( ncv.isNull() )break;
^~~
/home/knteran/AMPE/source/FieldsInitializer.C:188:11: note: suggested alternative: ‘nice’
if( ncv.isNull() )break;
^~~
nice
/home/knteran/AMPE/source/FieldsInitializer.C:199:11: error: ‘NcDim’ was not declared in this scope
vector<NcDim> dims;
^~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:199:16: error: template argument 1 is invalid
vector<NcDim> dims;
^
/home/knteran/AMPE/source/FieldsInitializer.C:199:16: error: template argument 2 is invalid
/home/knteran/AMPE/source/FieldsInitializer.C:201:12: error: request for member ‘push_back’ in ‘dims’, which is of non-class type ‘int’
dims.push_back(ncPhase.getDim(2));
^~~~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:201:22: error: ‘ncPhase’ was not declared in this scope
dims.push_back(ncPhase.getDim(2));
^~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:201:22: note: suggested alternative: ‘ncclose’
dims.push_back(ncPhase.getDim(2));
^~~~~~~
ncclose
/home/knteran/AMPE/source/FieldsInitializer.C:202:12: error: request for member ‘push_back’ in ‘dims’, which is of non-class type ‘int’
dims.push_back(ncPhase.getDim(1));
^~~~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:203:12: error: request for member ‘push_back’ in ‘dims’, which is of non-class type ‘int’
dims.push_back(ncPhase.getDim(0));
^~~~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:205:12: error: request for member ‘push_back’ in ‘dims’, which is of non-class type ‘int’
dims.push_back(ncTemp.getDim(2));
^~~~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:205:22: error: ‘ncTemp’ was not declared in this scope
dims.push_back(ncTemp.getDim(2));
^~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:205:22: note: suggested alternative: ‘ncerr’
dims.push_back(ncTemp.getDim(2));
^~~~~~
ncerr
/home/knteran/AMPE/source/FieldsInitializer.C:206:12: error: request for member ‘push_back’ in ‘dims’, which is of non-class type ‘int’
dims.push_back(ncTemp.getDim(1));
^~~~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:207:12: error: request for member ‘push_back’ in ‘dims’, which is of non-class type ‘int’
dims.push_back(ncTemp.getDim(0));
^~~~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:209:27: error: invalid types ‘int[int]’ for array subscript
size_t nx_file = dims[0].getSize();
^
/home/knteran/AMPE/source/FieldsInitializer.C:210:27: error: invalid types ‘int[int]’ for array subscript
size_t ny_file = dims[1].getSize();
^
/home/knteran/AMPE/source/FieldsInitializer.C:211:27: error: invalid types ‘int[int]’ for array subscript
size_t nz_file = dims[2].getSize();
^
/home/knteran/AMPE/source/FieldsInitializer.C:243:11: error: ‘ncQuatComponents’ was not declared in this scope
NcVar* ncQuatComponents=NULL;
^~~~~~~~~~~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:245:30: error: ‘NcVar’ does not name a type; did you mean ‘char’?
ncQuatComponents = new NcVar[d_qlen];
^~~~~
char
/home/knteran/AMPE/source/FieldsInitializer.C:280:11: error: ‘ncConcComponents’ was not declared in this scope
NcVar* ncConcComponents=NULL;
^~~~~~~~~~~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:283:30: error: ‘NcVar’ does not name a type; did you mean ‘char’?
ncConcComponents = new NcVar[d_ncompositions];
^~~~~
char
/home/knteran/AMPE/source/FieldsInitializer.C:307:7: error: ‘NcType’ was not declared in this scope
NcType type = (d_phase_id>=0) ? ncPhase.getType() : ncTemp.getType();
^~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:307:7: note: suggested alternative: ‘wctype’
NcType type = (d_phase_id>=0) ? ncPhase.getType() : ncTemp.getType();
^~~~~~
wctype
/home/knteran/AMPE/source/FieldsInitializer.C:308:11: error: ‘type’ was not declared in this scope
if( type.getTypeClassName() == "nc_FLOAT" ){
^~~~
/home/knteran/AMPE/source/FieldsInitializer.C:308:11: note: suggested alternative: ‘pipe’
if( type.getTypeClassName() == "nc_FLOAT" ){
^~~~
pipe
/home/knteran/AMPE/source/FieldsInitializer.C:312:45: error: ‘ncPhase’ was not declared in this scope
initializePatchFromData(*p,islice, ncPhase,
^~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:312:45: note: suggested alternative: ‘ncclose’
initializePatchFromData(*p,islice, ncPhase,
^~~~~~~
ncclose
/home/knteran/AMPE/source/FieldsInitializer.C:313:13: error: ‘ncEta’ was not declared in this scope
ncEta, ncTemp, ncQuatComponents, ncConcComponents, vals);
^~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:313:13: note: suggested alternative: ‘ncopts’
ncEta, ncTemp, ncQuatComponents, ncConcComponents, vals);
^~~~~
ncopts
/home/knteran/AMPE/source/FieldsInitializer.C:313:20: error: ‘ncTemp’ was not declared in this scope
ncEta, ncTemp, ncQuatComponents, ncConcComponents, vals);
^~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:313:20: note: suggested alternative: ‘ncerr’
ncEta, ncTemp, ncQuatComponents, ncConcComponents, vals);
^~~~~~
ncerr
/home/knteran/AMPE/source/FieldsInitializer.C:318:45: error: ‘ncPhase’ was not declared in this scope
initializePatchFromData(*p,islice, ncPhase,
^~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:318:45: note: suggested alternative: ‘ncclose’
initializePatchFromData(*p,islice, ncPhase,
^~~~~~~
ncclose
/home/knteran/AMPE/source/FieldsInitializer.C:319:14: error: ‘ncEta’ was not declared in this scope
ncEta, ncTemp, ncQuatComponents, ncConcComponents, vals);
^~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:319:14: note: suggested alternative: ‘ncopts’
ncEta, ncTemp, ncQuatComponents, ncConcComponents, vals);
^~~~~
ncopts
/home/knteran/AMPE/source/FieldsInitializer.C:319:21: error: ‘ncTemp’ was not declared in this scope
ncEta, ncTemp, ncQuatComponents, ncConcComponents, vals);
^~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:319:21: note: suggested alternative: ‘ncerr’
ncEta, ncTemp, ncQuatComponents, ncConcComponents, vals);
^~~~~~
ncerr
/home/knteran/AMPE/source/FieldsInitializer.C:331:16: error: type ‘<type error>’ argument given to ‘delete’, expected pointer
delete[] ncQuatComponents;
^~~~~~~~~~~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:334:16: error: type ‘<type error>’ argument given to ‘delete’, expected pointer
delete[] ncConcComponents;
^~~~~~~~~~~~~~~~
/home/knteran/AMPE/source/FieldsInitializer.C: At global scope:
/home/knteran/AMPE/source/FieldsInitializer.C:352:4: error: ‘NcVar’ has not been declared
NcVar& ncPhase,
^~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:353:4: error: ‘NcVar’ has not been declared
NcVar& ncEta,
^~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:354:4: error: ‘NcVar’ has not been declared
NcVar& ncTemp,
^~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:355:4: error: ‘NcVar’ has not been declared
NcVar* ncQuatComponents,
^~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:356:4: error: ‘NcVar’ has not been declared
NcVar* ncConcComponents,
^~~~~
/home/knteran/AMPE/source/FieldsInitializer.C:341:6: error: prototype for ‘void FieldsInitializer::initializePatchFromData(boost::shared_ptr<SAMRAI::hier::Patch>, size_t, int&, int&, int&, int*, int*, T*)’ does not match any in class ‘FieldsInitializer’
void FieldsInitializer::initializePatchFromData(
^~~~~~~~~~~~~~~~~
In file included from /home/knteran/AMPE/source/FieldsInitializer.C:36:0:
/home/knteran/AMPE/source/FieldsInitializer.h:74:6: error: candidate is: template<class T> void FieldsInitializer::initializePatchFromData(boost::shared_ptr<SAMRAI::hier::Patch>, size_t, int)
void initializePatchFromData(
^~~~~~~~~~~~~~~~~~~~~~~
Need to add regression test with restart
I am using gcc 7.1 to build AMPE with Boost 1.64. I just came across the following compile-time error. It seems getValue() method is missing.
/home/knteran/test/spack/opt/spack/linux-rhel7-x86_64/gcc-7.1.0/openmpi-3.1.2-pnuiuz47gibllky53lmxymwnd4y42zjf/bin/mpic++ -O2 -Wall -Wextra -Wconversion -O2 -std=c++11 -I/usr/local/include -I. -I../../../include -I../../../../SAMRAI/source -I/home/knteran/ampe_build/birch-mpic++-gfortran-opt/base/sundials/include -I/home/knteran/test/spack/opt/spack/linux-rhel7-x86_64/gcc-7.1.0/hypre-2.14.0-tmhc465qt7hch4zalschzzlfc2hsyr7t/include -I/home/knteran/test/spack/opt/spack/linux-rhel7-x86_64/gcc-7.1.0/boost-1.64.0-nrijielw34755vhd76cqvngyl24arq7t/include -I/home/knteran/test/spack/opt/spack/linux-rhel7-x86_64/gcc-7.1.0/hdf5-1.10.3-3oaefhuqy5u7o4bfnnspu5fqffhph2pg/include -I/usr/local/include -c ../../../../SAMRAI/source/SAMRAI/pdat/NodeComplexLinearTimeInterpolateOp.C -o NodeComplexLinearTimeInterpolateOp.o
In file included from ../../../../SAMRAI/source/SAMRAI/pdat/OuternodeData.h:688:0,
from ../../../../SAMRAI/source/SAMRAI/pdat/OuternodeDataFactory.C:18,
from ../../../../SAMRAI/source/SAMRAI/pdat/OuternodeDataFactory.h:155,
from ../../../../SAMRAI/source/SAMRAI/pdat/NodeDataFactory.C:19,
from ../../../../SAMRAI/source/SAMRAI/pdat/NodeDataFactory.h:153,
from ../../../../SAMRAI/source/SAMRAI/pdat/NodeVariable.C:15,
from ../../../../SAMRAI/source/SAMRAI/pdat/NodeVariable.h:102,
from ../../../../SAMRAI/source/SAMRAI/pdat/NodeComplexLinearTimeInterpolateOp.C:16:
../../../../SAMRAI/source/SAMRAI/pdat/OuternodeData.C: In member function ‘const TYPE& SAMRAI::pdat::OuternodeData<TYPE>::operator()(const SAMRAI::pdat::NodeIndex&, int) const’:
../../../../SAMRAI/source/SAMRAI/pdat/OuternodeData.C:196:26: error: no match for ‘operator-’ (operand types are ‘const SAMRAI::tbox::Dimension’ and ‘int’)
for (int d = getDim() - 1; d >= 0; --d) {
~~~~~~~~~^~~
Physical conditions can lead to a phase disappearing from the simulation. This can subsequently lead to a crash that may appear random to the user. It would be nice to catch such cases and terminate early with a warning
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.