| Line 48... |
Line 48... |
PetscErrorCode IPSetBilinearForm(IP ip,Mat mat,IPBilinearForm form)
|
PetscErrorCode IPSetBilinearForm(IP ip,Mat mat,IPBilinearForm form)
|
{
|
{
|
PetscErrorCode ierr;
|
PetscErrorCode ierr;
|
|
|
PetscFunctionBegin;
|
PetscFunctionBegin;
|
PetscValidHeaderSpecific(ip,IP_COOKIE,1);
|
PetscValidHeaderSpecific(ip,IP_CLASSID,1);
|
if (mat) {
|
if (mat) {
|
PetscValidHeaderSpecific(mat,MAT_COOKIE,1);
|
PetscValidHeaderSpecific(mat,MAT_CLASSID,1);
|
PetscObjectReference((PetscObject)mat);
|
PetscObjectReference((PetscObject)mat);
|
}
|
}
|
if (ip->matrix) {
|
if (ip->matrix) {
|
ierr = MatDestroy(ip->matrix);CHKERRQ(ierr);
|
ierr = MatDestroy(ip->matrix);CHKERRQ(ierr);
|
ierr = VecDestroy(ip->Bx);CHKERRQ(ierr);
|
ierr = VecDestroy(ip->Bx);CHKERRQ(ierr);
|
| Line 85... |
Line 85... |
IPBilinearForm
|
IPBilinearForm
|
@*/
|
@*/
|
PetscErrorCode IPGetBilinearForm(IP ip,Mat* mat,IPBilinearForm* form)
|
PetscErrorCode IPGetBilinearForm(IP ip,Mat* mat,IPBilinearForm* form)
|
{
|
{
|
PetscFunctionBegin;
|
PetscFunctionBegin;
|
PetscValidHeaderSpecific(ip,IP_COOKIE,1);
|
PetscValidHeaderSpecific(ip,IP_CLASSID,1);
|
if (mat) *mat = ip->matrix;
|
if (mat) *mat = ip->matrix;
|
if (form) *form = ip->bilinear_form;
|
if (form) *form = ip->bilinear_form;
|
PetscFunctionReturn(0);
|
PetscFunctionReturn(0);
|
}
|
}
|
|
|
| Line 135... |
Line 135... |
PetscErrorCode IPApplyMatrix(IP ip,Vec x,Vec y)
|
PetscErrorCode IPApplyMatrix(IP ip,Vec x,Vec y)
|
{
|
{
|
PetscErrorCode ierr;
|
PetscErrorCode ierr;
|
|
|
PetscFunctionBegin;
|
PetscFunctionBegin;
|
PetscValidHeaderSpecific(ip,IP_COOKIE,1);
|
PetscValidHeaderSpecific(ip,IP_CLASSID,1);
|
if (ip->matrix) {
|
if (ip->matrix) {
|
ierr = IPApplyMatrix_Private(ip,x);CHKERRQ(ierr);
|
ierr = IPApplyMatrix_Private(ip,x);CHKERRQ(ierr);
|
ierr = VecCopy(ip->Bx,y);CHKERRQ(ierr);
|
ierr = VecCopy(ip->Bx,y);CHKERRQ(ierr);
|
} else {
|
} else {
|
ierr = VecCopy(x,y);CHKERRQ(ierr);
|
ierr = VecCopy(x,y);CHKERRQ(ierr);
|