aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/vasp/source/vecblk.cpp
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2002-12-02 19:21:08 +0000
committerThomas Grill <xovo@users.sourceforge.net>2002-12-02 19:21:08 +0000
commit9815096db22c73cacdbb65512d1b61d633db7fa8 (patch)
tree4a6582ead85b8efd031f68e717fbc8a5b3a3df3f /externals/grill/vasp/source/vecblk.cpp
parent0a109da279e9df66fb5ea7d6bdaeffed16592f02 (diff)
"version 0.1.1"
svn path=/trunk/; revision=267
Diffstat (limited to 'externals/grill/vasp/source/vecblk.cpp')
-rw-r--r--externals/grill/vasp/source/vecblk.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/externals/grill/vasp/source/vecblk.cpp b/externals/grill/vasp/source/vecblk.cpp
new file mode 100644
index 00000000..1efc3981
--- /dev/null
+++ b/externals/grill/vasp/source/vecblk.cpp
@@ -0,0 +1,49 @@
+#include "vecblk.h"
+//#include <math.h>
+
+
+///////////////////////////////////////////////////////////////////////////
+// VecBlock class
+///////////////////////////////////////////////////////////////////////////
+
+VecBlock::VecBlock(BL cx,I msrc,I mdst,I marg,I blarg):
+ cplx(cx),asrc(msrc),barg(blarg),aarg(marg*blarg),adst(mdst)
+{
+ I i,all = asrc+aarg*blarg+adst;
+ vecs = new VBuffer *[all];
+ for(i = 0; i < all; ++i) vecs[i] = NULL;
+}
+
+VecBlock::~VecBlock()
+{
+ if(vecs) {
+ I all = asrc+aarg*barg+adst;
+ for(I i = 0; i < all; ++i)
+ if(vecs[i]) delete vecs[i];
+ delete[] vecs;
+ }
+}
+
+Vasp *VecBlock::_DstVasp(I n)
+{
+ Vasp *ret = new Vasp;
+ ret->Frames(Frames());
+ for(I i = 0; i < n; ++i) *ret += Vasp::Ref(*_Dst(i));
+ return ret;
+}
+
+Vasp *VecBlock::_SrcVasp(I n)
+{
+ Vasp *ret = new Vasp;
+ ret->Frames(Frames());
+ for(I i = 0; i < n; ++i) *ret += Vasp::Ref(*_Src(i));
+ return ret;
+}
+
+Vasp *VecBlock::_ResVasp(I n)
+{
+ return _Dst(0)?_DstVasp(n):_SrcVasp(n);
+}
+
+
+