Parent Directory
|
Revision Log
Links to HEAD: | (view) (annotate) |
Sticky Revision: |
Branch commit. Added a note about mismatched allocs and decallocs. Added Data::actsExpanded and friends. Modified DataC::isExpanded to call it instead of Data::isExpanded.
Branch commit. Modifed getSampleData to take a buffer. Added calls to allocate and free buffers. Passes unit tests on badger but have not tried on savanna yet.
Branching to experiment with changes to the DataC interface. The goal is to separate read and write access to pointers.
Bringing all changes across from schroedinger. (Note this does not mean development is done, just that it will happen on the trunk for now). If anyone notices any problems please contact me.
Fixed /* in a comment. The rank of a datapoint is now an unsigned int.
A cleanup of some of the problems I found doing a Wall compile. Removed some commented out lines. Swapped some member initialisers. Removed virtual qualifiers from some methods in FunctionSpace. Fixed some unused or (possibly) uninitialised variables.
Closing the moreshared branch
Updated doco to describe the behaviour of inf, sup and Lsup for cases where none of the tags in use in the domain have values. It confused me when I was testing.
Copyright updated in all files
All about making DataEmpty instances throw. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Exposed getDim from AbstractDomain to python to fix bug. Added isEmpty member to DataAbstract to allow it to throw is queries are made about a DataEmpty instance. Added exceptions to DataAbstract, DataEmpty and Data to prevent calls being made against DataEmpty objects. The following still work as expected on DataEmpty instances copy, getDomain, getFunctionSpace, isEmpty, isExpanded, isProtected, isTagged, setprotection. You can also call interpolate, however it should throw if you try to change FunctionSpaces.
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.
Added Data::copySelf() [Note: this is exposed as copy() in python]. This method returns a pointer to a deep copy of the target. There are c++ tests but no python tests for this yet. All DataAbstracts now have a deepCopy() which simplifies the implementation of the compy methods.
Merged noarrayview branch onto trunk.
MPI parallelism for Data().dump and load. Use multiple NetCDF files, one file per MPI process
robust function to normalize data object added
Modified toString() on Data objects. str(x) or print x will now print a summary of the data rather than all the points if the output would take more than 80 lines.
Get the windows dll linkage right fo C_TensorBinaryOperation
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
setTaggedValue works now for expanded data.
Initial rewrite of escript unary operations. The rewritten operations are now single-pass.
Pow now uses the new binary function interface of C_TensorBinaryOperation.
Initial rewrite of binary escript operations.
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.
Some changes to make things run on windows. There is still a problem with netcdf an long file names on windows but there is the suspicion that this is a bigger problem related to boost (compiler options). In fact runs with large numbers of iteration/time steps tend to create seg faults.
This version passes the tests on windows except for * vtk * netCDF The version needs to be tested on altix and linux
problem with reset of faulty PDE rhs fixed.
the useless profilinf for data.cpp removed (doDebug=yes should work again) and a small bug in the gmsh reader fixed.
clear name tagging is supported now.
In VC++ boost has problems with numarray arguments from python. This fixes that problem by taking python::object arguments from the python level and converting it into python::numeric::array on the C++ level. This hasn't been tested with VC++ yet. Moreover the two Data methods dealing with big numarrays as argument and return value have been removed.
modifications to be compliant with _WIN32. The substitutes for asinh, acosh, atanh are still missing (erf will through an exception)
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.
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.
escript data objects can now be saved to netCDF files, see http://www.unidata.ucar.edu/software/netcdf/. Currently only constant data are implemented with expanded and tagged data to follow. There are two new functions to dump a data object s=Data(...) s.dump(<filename>) and to recover it s=load(<filename>, domain) Notice that the function space of s is recovered but domain is still need. dump and load will replace archive and extract. The installation needs now the netCDF installed.
setValueOfDataPoint accepts double value as argument now
I have done some clarification on functions that allow to access individual data point values in a Data object. The term "data point number" is always local on a MPI process and referes to the value (data_point_in_sample, sample) as a single identifyer (data_point_in_sample + sample * number_data_points_per_sample). a "global data point number" referes to a tuple of a processour id and local data point number. The function convertToNumArrayFromSampleNo has been removed now and convertToNumArrayFromDPNo renamed to getValueOfDataPoint. There are two new functions: getNumberOfDataPoints setValueOfDataPoint This allows you to do things like: in=Data(..) out=Data(..) for i in xrange(in.getNumberOfDataPoints()) in_loc=in.getValueOfDataPoint(i) out_loc=< some operations on in_loc> out.setValueOfDataPoint(i,out_loc) Also mindp is renamed to minGlobalDataPoint and there is a new function getValueOfGlobalDataPoint. While in MPI the functions getNumberOfDataPoints and getValueOfDataPoint are working locally on each process (so the code above is executed in parallel). the latter allows getting a single value across all processors.
access to the number of samples added
Added erf (error function) implementation
Some modifications to the binary operations +,-,*/, pow. The code is a bit simpler now and more efficient has there is no reseising required now. the resizing method has been removed as it is very, very inefficient. Even serial code should be faster now. It is now forbidden to do an inplace update of scalar data object with an object of rank >0 as this is very slow (and does not make much sense).
Tensor products for Data objects are now computed by a C++ method C_GeneralTensorProduct, which calls C function matrix_matrix_product to do the actual calculation. Can perform product with either input transposed in place, meaning without first computing the transpose in a separate step.
the new function swap_axes + tests added. (It replaces swap).
new function _swap. Python wrapper + testing is still missing.
changes to escript/py_src/pdetools.py and /escript/src/Data.h/.cpp to make the Locator work in MPI. escript::Data::mindp now returns a 3 tuple, with the MPI rank of the process on which the minimum value occurs included. escript::Data::convertToNumArrayFromDPNo also takes the ProcNo to perform the MPI reduction. This had to be implemented in both the MPI and non-MPI versions to allow the necesary changes to the Python code in pdetools.py. In the non-MPI version ProcNo is set to 0. This works for the explicit scripts tested thus far, however if it causes problems in your scripts contact Ben or Lutz, or revert the three files (pdetools.py, Data.h and Data.cpp) to the previous version.
Inserted PASO_MPI macro in Data.h to match source file
coordinates, element size and normals returned by corresponding FunctionSpace mesthods are now protected against updates. So +=, -=, *=, /=, setTaggedValue, fillFromNumArray will through an excpetion. The FunctionSpace class does nut buffer the oordinates, element size and normals yet.
Large number of changes to Finley for meshing in MPI. - optimisation and neatening up of rectcanglular mesh generation code - first and second order 1D, 2D and 3D rectangular meshes are now available in finley and escript using MPI. - reduced meshes now generated in MPI, and interpolation to and from reduced data types now supported.
Modified the following python methods in escript/py_src/util.py to call faster C++ methods: escript_trace escript_transpose escript_symmetric escript_nonsymmetric
+ 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.
now float**Data is running
test with tagged data pass now
More copyright information.
some steps towards eigenvalue and eigenvector calculation
modify whereZero etc methods to also accept a tolerance parameter
further fix for DataTAgged::dp_algorithm, was not working for DataTagged objects with 0 tags
reimplement dp_algorithm for DataTagged, existing implementation was complete rubbish (ich bin so beschämt!)
minor comment fixes
rationalise #includes and forward declarations
restructure escript source tree move src/Data/* -> src remove inc modify #includes and cpppath settings accordingly
length method is removed as it is too slow. use length in util.py instead
move all directories from trunk/esys2 into trunk and remove esys2
Merge of development branch dev-02 back to main trunk on 2005-09-22
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-22
Merge of development branch back to main trunk on 2005-07-08
Merge of development branch back to main trunk on 2005-06-09
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 ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
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 |