Parent Directory
|
Revision Log
Links to HEAD: | (view) (annotate) |
Sticky Revision: |
Branch commit. Fixed problems with copyFromNumArray Removed version of setTaggedValueFromCPP() which required DataArrayView. Updated tests.
Branch commit. Moved getSliceRegionLoopRange and checkShape into DataTypes.h Some work on methods to set/addTaggedValues without using DataArrayView. To do this I added copyFromNumArray() on DataVector (It buggy at the moment). This build passes the tests but only because copyFromNumArray is not used.
Branch commit Moved getSliceRegion() and getSliceRange() into DataTypes Data.cpp - modified not to rely on operator() from DataArrayView - Used more const& to avoid copies
Branch commit. Finished first pass of Data.h - There is still a constructor which takes a DataArrayView as a parameter. Apart from that, there are no direct references to DataArrayView. DataTagged has a new constructor for copying just the tags from an existing object. DataTypes:: now has a scalarShape constant (to avoid creating one everytime you create a scalar).
Branch commit: DataTagged::addTag() = Add a tag with default value. (All uses that I can find apart from test code only require this anyway). DataAbstract now knows its own shape, rank and number of values and have accessors for them. Data Objects also have acessors for these but query their DataAbstracts for the answers. Data::getDataAtOffset() = access to a particular point in the underlying array. (At the moment this call references the DataArrayView, but that will change when I have everything else working). DataTagged::getDataByTag() = same but search by tag. DataTagged::getDefaultValue() = returns default value without obvious reference to DataArrayView C_GeneralTensorProduct_J is my temporary copy of C_GeneralTensorProduct for experimentation. It and a number of other temporary functions live in JoelMods.cpp_ for now.
Moved ValueType, ShapeType, RegionType, RegionLoopRangeType and maxRank From DataArrayView.h to DataTypes.h This is a simple rename but did require modifying a lot of files.
Branching to perform experiments on removing DataArrayView
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 |