Parent Directory
|
Revision Log
Sticky Revision: |
Adding getMPIComm
A bunch of changes related to saveDataCSV. [Not completed or unit tested yet] Added saveDataCSV to util.py AbstractDomain (and MeshAdapter) have a commonFunctionSpace method to take a group of FunctionSpaces and return something they can all be interpolated to. Added pointToStream() in DataTypes to help print points. added actsConstant() to data - required because DataConstant doesn't store samples the same way other Data do.
a problem with the sparse matrix unrolling fixed.
Updating copyright notices
finley delivers now a status identifier of the mesh.
Correcting some doxygen errors
bug in setNewX fixed: now it is made sure that the FunctionSpace of the new coordinates is correct.
Fixed const-ness on some return values. Null-Domain now reports tag one as being in use.
vtk writer supports now meta data and meta data schema
two fixes dealing with zero samples under MPI
fixes for MPI
Moved common functionality from saveDX/VTK into private method. May be used for future save* methods.
Removed unnecessary "magic name length".
Fixed a typo in error message.
This commit cleans up the incompressible solver and adds a DarcyFlux solver in model module. Some documentation for both classes has been added. The convection code is only linear at the moment.
Addressing mantis issue #221. Interpolation.. and probeInterpolation.. now "work" for the NullDomain. Work means throw a descriptive exception if you try to move into or out of the NullDomain. The bad_cast exception related to this has been fixed.
Two changes. 1. Move blocktimer from escript to esysUtils. 2. Make it possible to link to paso as a DLL or .so. Should have no effect on 'nix's In respect of 1., blocktimer had begun to spring up everywhere, so for the moment I thought it best to move it to the only other library that pops up all over the place. In respect of 2., paso needed to be a DLL in order to use the windows intelc /fast option, which does aggressive multi-file optimisations. Even in its current form, it either vectorises or parallelises hundreds more loops in the esys system than appear in the pragmas. In achieving 2. I have not been too delicate in adding PASO_DLL_API declarations to the .h files in paso/src. Only toward the end of the process of the conversion, when the number of linker errors dropped below 20, say, did I choosy about what functions in a header I declared PASO_DLL_API. As a result, there are likely to be many routines declared as external functions symbols that are in fact internal to the paso DLL. Why is this an issue? It prevents the intelc compiler from getting aggressive on the paso module. With pain there is sometimes gain. At least all the DLL rules in windows give good (non-microsoft) compiler writers a chance to really shine. So, if you should see a PASO_DLL_API on a function in a paso header file, and think to yourself, "that function is only called in paso, why export it?", then feel free to delete the PASO_DLL_API export declaration. Here's hoping for no breakage.....
Changes to avoid compiler warnings Finley files now pass -Wall on gcc 4.3.2 saveVTK.c: replaced printf(string) with printf("%s", string) MeshAdapterFactory.cpp: moved a few lines to avoid possible use of uninitialized vars MeshAdapter.cpp: initialized ncdims in mesh dump There is still a warning from a boost include file
convection.py checkpointing uses mkdir/rmdir, and under MPI there was a race condition. mkdir needs to be run on only one CPU and then a barrier to prevent working processors from using the directory before it exists. Added methods domain.MPIBarrier and domain.onMasterProcessor() to implement this technique. A more general solution might be possible in the future.
Closing the moreshared branch
first version of testing for transport solver.
Copyright updated in all files
Added canTag methods to FunctionSpace and AbstractDomain (and its offspring). This checks to see if the domain supports tags for the given type of function space. Constructors for DataTagged now throw exceptions if you attempt to make a DataTagged with a FunctionSpace which does not support tags. To allow the default constructor to work, NullDomain has a single functioncode which "supports" tagging. Fixed a bug in DataTagged::toString and DataTypes::pointToString. Added FunctionSpace::getListOfTagsSTL. algorithm(DataTagged, BinaryFunction) in DataAlgorithm now only processes tags known to be in use. This fixes mantis issue #0000186. Added comment to Data.h intro warning about holding references if the underlying DataAbstract changes. _python_ unit tests have been updated to test TaggedData with invalid FunctionSpaces and to give the correct answers to Lsup etc.
Fixed serialization of I/O for MPI...code didn't compile without MPI
Serialized parallel I/O when writing mesh or data to NetCDF file on multiple MPI processors. Added domain method getMPIComm() to complement getMPISize() and getMPIRank().
Merged noarrayview branch onto trunk.
Implemented Lutz fix for MPI mesh dump/load using NetCDF
Cleared away some debugging prints
Added new field to NetCDF dump of mesh
Added new test suite run_inputOutput.py to systematically test I/O. Can determine if two domains are same with Fourier analysis. Added new method getNumDataPointsGlobal to return number of DPs of a distributed mesh. Reading of tags in ReadMeshMPI failed occasionally, should be more robust now.
MPI parallelism for Data().dump and load. Use multiple NetCDF files, one file per MPI process
getListOfTags method added to FunctionSpace class
compiling with netcdf on revealed an unused var.
Merge in /branches/windows_from_1456_trunk_1620_merged_in branch. You will find a preserved pre-merge trunk in tags under tags/trunk_at_1625. That will be useful for diffing & checking on my stupidity. Here is a list of the conflicts and their resolution at this point in time. ================================================================================= (LLWS == looks like white space). finley/src/Assemble_addToSystemMatrix.c - resolve to branch - unused var. may be wrong..... finley/src/CPPAdapter/SystemMatrixAdapter.cpp - resolve to branch - LLWS finley/src/CPPAdapter/MeshAdapter.cpp - resolve to branch - LLWS paso/src/PCG.c - resolve to branch - unused var fixes. paso/src/SolverFCT.c - resolve to branch - LLWS paso/src/FGMRES.c - resolve to branch - LLWS paso/src/Common.h - resolve to trunk version. It's omp.h's include... not sure it's needed, but for the sake of saftey..... paso/src/Functions.c - resolve to branch version, indentation/tab removal and return error on bad unimplemented Paso_FunctionCall. paso/src/SolverFCT_solve.c - resolve to branch version, unused vars paso/src/SparseMatrix_MatrixVector.c - resolve to branch version, unused vars. escript/src/Utils.cpp - resloved to branch, needs WinSock2.h escript/src/DataExpanded.cpp - resolved to branch version - LLWS escript/src/DataFactory.cpp - resolve to branch version ================================================================================= This currently passes tests on linux (debian), but is not checked on windows or Altix yet. This checkin is to make a trunk I can check out for windows to do tests on it. Known outstanding problem is in the operator=() method of exceptions causing warning messages on the intel compilers. May the God of doughnuts have mercy on my soul.
bug for interpoltion from reduced solution to elements in MPI fixed.
Merge of branches/windows_from_1431_trunk. Revamp of the exception system. Fix unused vars and signed/unsigned comparisons. defined a macro THROW(ARG) in the system_dep.h's to deal with the expectations of declarations on different architectures. Details in the logs of branches/windows_from_1431_trunk. pre-merge snapshot of the trunk in tags/trunk_at_1452
new upwinding algorithm (still fails)
And get the *(&(*&(* name right
Restore the trunk that existed before the windows changes were committed to the (now moved to branches) old trunk.
Make a temp copy of the trunk before checking in the windows changes
bug in interpolation at reduced face elements fixed.
explicit upwinding scheme added.
finley can now assemble a transport problem.
finley can create a TransportProblem now
first steps towards a flux controlled transport solver.
Completed mesh.dump(file) and mesh=LoadMesh(file) by adding TagMap and implementing MPI parallelism. Now allocating ElementFile for ContactElements even if there are none. Removed file Mesh_dump.c since dump/loadMesh are in CPPAdapter/MeshAdapter*.cpp.
dump/LoadMesh methods work except for TagMap, Point elements probably OK but are untested.
Created LoadMesh to read a mesh from a distributed NetCDF file. Can read nodes but not elements yet.
Now using TMPMEMFREE but still thrashes memory for very large mesh. Future solution will be to use NetCDF subsetting and less temp memory.
First cut implementation of mesh.dump() using NetCDF. TagMap not saved yet. The code for Points probably works but has not been tested.
Modified scons target release_src to include lib/ and include/ since their presence is required for a build. Modified mydomain.print_mesh_info(True) to include more useful info about a distributed domain. Added mypde.getOperator().print_matrix_info(True) to tell about a distributed matrix.
Implemented domain.print_mesh_info() so we can see the distribution of elements & nodes. Implemented -DBOUNDS_CHECK to catch an error with periodicN=True.
The MPI branch is hereby closed. All future work should be in trunk. Previously in revision 1295 I merged the latest changes to trunk into trunk-mpi-branch. In this revision I copied all files from trunk-mpi-branch over the corresponding trunk files. I did not use 'svn merge', it was a copy.
a frame for an improved lumping procedure added.
This version passes the tests on windows except for * vtk * netCDF The version needs to be tested on altix and linux
Interporpolation from full to reduced integration order added.
small typo fixed.
test for reduced integration order for grad, interpolate and integrate added. Bug shown by the tests have been fixed.
reduced integration schemes are implemented now for grad, integrate, etc. Tests still to be added.
first steps toward reduced element integration order. The escript bit is done but the finley part still needs work.
clear name tagging is supported now.
Had to undo commit to new MPI branch. The changes went into the original and not the branch. The files committed here are exactly the same as revision 969.
Parallelization using MPI for solution of implicit problems. Parallelization for explicit problems has already been accomplished in the main SVN branch. This is incomplete and is not ready for use.
dump and load of expanded data via netCDF added. some test are still missing.
The set/getRefVal functions of Data objects have been removed (mainly to avoid later problems with MPI). Moreover, a faster access to the reference id of samples has been introduced. I don't think that anybody will profit form this at this stage but it will allow a faster dump of data objects.
Can now compile and run with MPI on shake71
Reimplementation of the assemblage with persistent jacobeans. There are also a few changes to the tests which has now dramatically reduced the memory demand.
Preliminary MPI version of saveVTK. Needs testers. Works for point data and should work for cell centered data.
new FunctionSpace method setTags added
+ Merge of intelc_win32 branch (revision 741:755) with trunk. Tested on iVEC altix (run_tests and py_tests all pass)
Changes relating to the MPI version of escript The standard OpenMP version of escript is unchanged - updated data types (Finley_Mesh, Finley_NodeFile, etc) to store meshes over multiple MPI processes. - added CommBuffer code in Paso for communication of Data associated with distributed meshes - updates in Finley and Escript to support distributed data and operations on distributed data (such as interpolation). - construction of RHS in MPI, so that simple explicit schemes (such as /docs/examples/wave.py without IO and the Locator) can run in MPI. - updated mesh generation for first order line, rectangle and brick meshes and second order line meshes in MPI. - small changes to trunk/SConstruct and trunk/scons/ess_options.py to build the MPI version, these changes are turned off by default.
+ NEW BUILD SYSTEM This commit contains the new build system with cross-platform support. Most things work are before though you can have more control. ENVIRONMENT settings have changed: + You no longer require LD_LIBRARY_PATH or PYTHONPATH to point to the esysroot for building and testing performed via scons + ACcESS altix users: It is recommended you change your modules to load the latest intel compiler and other libraries required by boost to match the setup in svn (you can override). The correct modules are as follows module load intel_cc.9.0.026 export MODULEPATH=${MODULEPATH}:/data/raid2/toolspp4/modulefiles/gcc-3.3.6 module load boost/1.33.0/python-2.4.1 module load python/2.4.1 module load numarray/1.3.3
solution and reduced solution can have reference numbers now!
first steps towards the reuse of the element jacobians
rationalise #includes and forward declarations
rationalise all #includes
reorganise finley src tree to remove inc dir and src/finley directory
adjustments to includes to allow for new paso src tree structure
adjust include file names to allow for new finley source tree structure
copy finleyC and CPPAdapter to finley and finley/CPPAdapter to facilitate scons builds
move all directories from trunk/esys2 into trunk and remove esys2
Merge of development branch dev-02 back to main trunk on 2005-10-25
Merge of development branch dev-02 back to main trunk on 2005-09-15
Merge of development branch dev-02 back to main trunk on 2005-09-01
Merge of development branch dev-02 back to main trunk on 2005-08-23
erge of development branch dev-02 back to main trunk on 2005-08-12
Merge of development branch back to main trunk on 2005-07-08
Merge of development branch back to main trunk on 2005-05-06
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
Initial revision
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
ViewVC Help | |
Powered by ViewVC 1.1.26 |