All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class cohy.estDip.DipXGrad

java.lang.Object
   |
   +----sep.operator.SepOperator
           |
           +----cohy.estDip.DipXGrad

public class DipXGrad
extends SepOperator
Computes the crossproduct ({\bf p \times \nabla) f. If f is a plane-wave and p its dip, the operator will return a null vector.
In 2D the operator is simply the partial differential operator p_y \partial_x + p_x \partial_y and returns a scalar for each input point. In 3D the operator yields a 3 component vector for each input point.
In the 3-D case, I currently compute a single output component at a given run. This avoids memory problems and makes the output handling easier. In 3D cases, the operator computes actually (\kronecker_{i-1},\kronecker_{i-2},\kronecker_{i-3}) ({\bf p \times \nabla) f.
Maybe a better design to hand in the dip and to make this the linear part of a SemiLinear operator. I also should pack the 6 dimensional output into a single vector. But I don't think the result will warrant the effort. Keeping the 2-D version and the 3-D version in the same file seems to create a mess. I probably should split them.


Constructor Index

 o DipXGrad(DipXGrad)
 o DipXGrad(RsfSpace)
 o DipXGrad(RsfSpace, RsfSpace)

Method Index

 o apply(boolean, Vector, Vector)
Apply the operator:

ran = this(dom)
 o copy()
 o getInputRsfSpace(RsfSpace)
I should call this createDomain().
 o getOutputRsfSpace(RsfSpace)
This should be using the IcaiFactory class once that class implements the OperatorFactory interface.
 o set3DToX()
 o set3DToY()
 o set3DToZ()
 o setResult(int)

Constructors

 o DipXGrad
 public DipXGrad(RsfSpace iputSpace)
 o DipXGrad
 public DipXGrad(RsfSpace iputSpace,
                 RsfSpace oputSpace)
 o DipXGrad
 protected DipXGrad(DipXGrad src)

Methods

 o copy
 public JamObject copy()
Overrides:
copy in class SepOperator
 o getOutputRsfSpace
 public static RsfSpace getOutputRsfSpace(RsfSpace iputSpace)
This should be using the IcaiFactory class once that class implements the OperatorFactory interface. Until then this class is a hack. I should probably call this createRange().

 o getInputRsfSpace
 public static RsfSpace getInputRsfSpace(RsfSpace oputSpace)
I should call this createDomain(). More comments see getOutputRsfSpace.

 o setResult
 public void setResult(int comp)
 o set3DToX
 public void set3DToX()
 o set3DToY
 public void set3DToY()
 o set3DToZ
 public void set3DToZ()
 o apply
 protected void apply(boolean add,
                      Vector iput,
                      Vector oput)
Apply the operator:

ran = this(dom)

Overrides:
apply in class SepOperator

All Packages  Class Hierarchy  This Package  Previous  Next  Index