SheafSystem  0.0.0.0
field_jcb_funcs.impl.h
1 
2 //
3 // Copyright (c) 2014 Limit Point Systems, Inc.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 
19 
20 //==============================================================================
21 // NON-MEMBER FUNCTIONS OF JCB FACET
22 //==============================================================================
23 
24 #ifndef FIELD_AT1_H
25 #include "SheafSystem/field_at1.h"
26 #endif
27 
28 
30 void
32 push(const field_jcb& xjcb, const field_at1& xvector, field_at1& xresult,
33  bool xauto_access)
34 {
35  // Preconditions:
36 
37  require(precondition_of(\
38  push(xjcb.property(), xvector.property(), xresult.property(),\
39  xauto_access)));
40 
41  // Body:
42 
43  fiber_bundle::sec_jcb_algebra::push(xjcb.property(), xvector.property(), xresult.property(), xauto_access);
44 
45  // Postconditions:
46 
47  ensure(postcondition_of(\
48  push(xjcb.property(), xvector.property(), xresult.property(),\
49  xauto_access)));
50 
51  // Exit:
52 
53  return;
54 }
55 
57 void
59 pull(const field_jcb& xjcb, const field_at1& xcovector, field_at1& xresult,
60  bool xauto_access)
61 {
62  // Preconditions:
63 
64  require(precondition_of(\
65  pull(xjcb.property(), xcovector.property(), xresult.property(),\
66  xauto_access)));
67 
68  // Body:
69 
70  fiber_bundle::sec_jcb_algebra::pull(xjcb.property(), xcovector.property(), xresult.property(), xauto_access);
71 
72  // Postconditions:
73 
74  ensure(postcondition_of(\
75  pull(xjcb.property(), xcovector.property(), xresult.property(),\
76  xauto_access)));
77 
78  // Exit:
79 
80  return;
81 }
82 
void SHEAF_DLL_SPEC pull(const field_jcb &xjcb, const field_at1 &xcovector, field_at1 &xresult, bool xauto_access)
Pull covector back (pre-allocated version).
void SHEAF_DLL_SPEC push(const field_jcb &xjcb, const field_at1 &xvector, field_at1 &xresult, bool xauto_access)
Push vector forward (pre-allocated version).
sec_at1 & property() const
The dependent variable of this field.
Definition: field_at1.cc:329
A property of type sec_at1 as a function of global coordinates.
Definition: field_at1.h:50
SHEAF_DLL_SPEC void push(const sec_jcb &xjcb, const sec_at1 &xvector, sec_at1 &xresult, bool xauto_access)
Push vector forward (pre-allocated version).
Definition: sec_jcb.cc:847
SHEAF_DLL_SPEC void pull(const jcb &xjcb, const at1 &xcovector, at1 &xresult, bool xauto_access)
Pull covector back (pre-allocated version for persistent types).
Definition: jcb.cc:1440
A property of type sec_jcb as a function of global coordinates.
Definition: field_jcb.h:50
SHEAF_DLL_SPEC void pull(const sec_jcb &xjcb, const sec_at1 &xcovector, sec_at1 &xresult, bool xauto_access)
Pull covector back (pre-allocated version).
Definition: sec_jcb.cc:901
SHEAF_DLL_SPEC void push(const jcb &xjcb, const at1 &xvector, at1 &xresult, bool xauto_access)
Push vector forward (pre-allocated version for persistent types).
Definition: jcb.cc:1374
sec_jcb & property() const
The dependent variable of this field.
Definition: field_jcb.cc:329