Epetra Package Browser (Single Doxygen Collection)
Development
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
example
petra_nonlinear
basis.cc
Go to the documentation of this file.
1
/*
2
//@HEADER
3
// ************************************************************************
4
//
5
// Epetra: Linear Algebra Services Package
6
// Copyright 2011 Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
39
//
40
// ************************************************************************
41
//@HEADER
42
*/
43
44
#include<iostream.h>
45
#include<math.h>
46
#include "
basis.h
"
47
48
// Constructor
49
Basis::Basis
() {
50
phi
=
new
double
[2];
51
dphide
=
new
double
[2];
52
}
53
54
// Destructor
55
Basis::~Basis
() {
56
delete
[]
phi
;
57
delete
[]
dphide
;
58
}
59
60
// Calculates a linear 1D basis
61
void
Basis::getBasis
(
int
gp,
double
*x,
double
*u) {
62
int
N = 2;
63
if
(gp==0) {
eta
=-sqrt(3)/sqrt(5);
wt
=5.0/9.0;}
64
if
(gp==1) {
eta
=0.0;
wt
=8.0/9.0;}
65
if
(gp==2) {
eta
=sqrt(3)/sqrt(5);
wt
=5.0/9.0;}
66
67
// Calculate basis function and derivatives at nodel pts
68
phi
[0]=(1.0-
eta
)/2.0;
69
phi
[1]=(1.0+
eta
)/2.0;
70
dphide
[0]=-0.5;
71
dphide
[1]=0.5;
72
73
// Caculate basis function and derivative at GP.
74
dx
=x[1]-x[0];
75
xx
=0.0;
76
uu
=0.0;
77
duu
=0.0;
78
for
(
int
i=0; i < N; i++) {
79
xx
+= x[i] *
phi
[i];
80
uu
+= u[i] * phi[i];
81
duu
+= u[i] *
dphide
[i];
82
}
83
84
return
;
85
}
Basis::getBasis
void getBasis(int gp, double *x, double *u)
Definition:
basis.cc:61
Basis::Basis
Basis()
Definition:
basis.cc:49
Basis::phi
double * phi
Definition:
basis.h:53
Basis::xx
double xx
Definition:
basis.h:54
Basis::~Basis
~Basis()
Definition:
basis.cc:55
basis.h
Basis::dx
double dx
Definition:
basis.h:58
Basis::uu
double uu
Definition:
basis.h:54
Basis::eta
double eta
Definition:
basis.h:54
Basis::wt
double wt
Definition:
basis.h:54
Basis::duu
double duu
Definition:
basis.h:54
Basis::dphide
double * dphide
Definition:
basis.h:53
Generated on Fri Feb 7 2025 09:20:52 for Epetra Package Browser (Single Doxygen Collection) by
1.8.5